public void SubFolderFile() { WixFileElement fileElement = new WixFileElement(doc, @"C:\Projects\Setup\Files\readme.txt"); Assert.AreEqual("readme.txt", fileElement.FileName); Assert.AreEqual("readme.txt", fileElement.FileName); Assert.AreEqual(@"Files\readme.txt", fileElement.Source); }
/// <summary> /// Creates a new file element with the specified filename. /// </summary> public WixFileElement AddFile(string fileName) { WixFileElement fileElement = new WixFileElement(this, fileName); AppendChild(fileElement); return(fileElement); }
/// <summary> /// Creates an id from the filename. /// </summary> /// <remarks> /// Takes the filename, removes all periods, and /// capitalises the first character and first extension character. /// </remarks> /// <param name="document">The Wix document is used to make sure the /// id generated is unique for that document.</param> /// <param name="fileName">The full filename including the directory to /// use when generating the id.</param> public static string GenerateIdFromFileName(WixDocument document, string fileName) { string id = GenerateIdFromFileName(fileName); if (!document.ComponentIdExists(id)) { return(id); } // Add the parent folder to the id. string parentDirectory = WixDirectoryElement.GetLastDirectoryName(Path.GetDirectoryName(fileName)); parentDirectory = FirstCharacterToUpperInvariant(parentDirectory); parentDirectory = WixFileElement.GenerateId(parentDirectory).Replace(".", String.Empty); id = String.Concat(parentDirectory, id); if (!document.ComponentIdExists(id)) { return(id); } // Add a number to the end until we generate a unique id. int count = 0; string baseId = id; do { ++count; id = String.Concat(baseId, count); } while (document.ComponentIdExists(id)); return(id); }
public void DifferentParentFolderFile() { WixFileElement fileElement = new WixFileElement(doc, @"C:\Projects\AnotherSetup\Files\readme.txt"); Assert.AreEqual("readme.txt", fileElement.FileName); Assert.AreEqual("readme.txt", fileElement.Id); Assert.AreEqual(@"..\AnotherSetup\Files\readme.txt", fileElement.Source); }
/// <summary> /// Adds a new directory with the specified name and id. A short name /// will be generated if the name is too long. /// </summary> public WixDirectoryElement AddDirectory(string name) { WixDirectoryElement directoryElement = new WixDirectoryElement((WixDocument)OwnerDocument); directoryElement.Id = WixFileElement.GenerateId(name); directoryElement.DirectoryName = name; return((WixDirectoryElement)AppendChild(directoryElement)); }
public void SetUpFixture() { WixDocument doc = new WixDocument(); WixFileElement fileElement = new WixFileElement(doc); fileElement.FileName = @"MyApp.exe"; fileNameSpecifiedNode = new WixFileTreeNode(fileElement); }
string GenerateUniqueChildDirectoryId(string childDirectoryId) { childDirectoryId = WixFileElement.GenerateId(childDirectoryId); if (!OwnerWixDocument.DirectoryIdExists(childDirectoryId)) { return(childDirectoryId); } return(GenerateUniqueChildDirectoryIdUsingParentDirectoryId(childDirectoryId)); }
string GenerateIdFromParentDirectory(string fileName) { string fullParentDirectory = Path.GetDirectoryName(fileName); string lastFolder = WixDirectoryElement.GetLastFolderInDirectoryName(fullParentDirectory); string id = UpperCaseFirstCharacter(lastFolder); id = WixFileElement.GenerateId(id); id = RemoveDotCharacters(id); return(id); }
string GenerateIdFromParentDirectory(string parentDirectory) { string parentDirectoryName = WixDirectoryElement.GetLastFolderInDirectoryName(parentDirectory); if (parentDirectoryName.Length > 0) { return(WixFileElement.GenerateId(parentDirectoryName)); } return(String.Empty); }
public void SetUpFixture() { base.InitFixture(); WixDirectoryElement programFilesFolderElement = (WixDirectoryElement)editor.Document.GetRootDirectory().FirstChild; view.SelectedElement = programFilesFolderElement; editor.AddDirectory(directory); appDirectoryElement = (WixDirectoryElement)programFilesFolderElement.FirstChild; exeFileElement = (WixFileElement)appDirectoryElement.SelectSingleNode("w:Component/w:File[@Name='MyApp.exe']", new WixNamespaceManager(editor.Document.NameTable)); readmeFileElement = (WixFileElement)appDirectoryElement.SelectSingleNode("w:Component/w:File[@Name='readme.txt']", new WixNamespaceManager(editor.Document.NameTable)); }
public void SetUpFixture() { base.InitFixture(); editor.ExcludedItems.AddRange(new string[] {"readme.txt", "obj"}); editor.AddDirectory(directory); WixNamespaceManager nsManager = new WixNamespaceManager(editor.Document.NameTable); appDirectoryElement = (WixDirectoryElement)editor.Document.GetRootDirectory().FirstChild; docsDirectoryElement = (WixDirectoryElement)appDirectoryElement.SelectSingleNode("w:Directory[@Name='docs']", nsManager); srcDirectoryElement = (WixDirectoryElement)appDirectoryElement.SelectSingleNode("w:Directory[@Name='src']", nsManager); readmeFileElement = (WixFileElement)docsDirectoryElement.SelectSingleNode("w:Component/w:File[@Name='readme.txt']", nsManager); }
public WixFileElement[] GetFiles() { List <WixFileElement> files = new List <WixFileElement>(); foreach (XmlNode childNode in ChildNodes) { WixFileElement childElement = childNode as WixFileElement; if (childElement != null) { files.Add(childElement); } } return(files.ToArray()); }
/// <summary> /// Creates an id from the filename. /// </summary> /// <remarks> /// Takes the filename, removes all periods, and /// capitalises the first character and first extension character. /// </remarks> public string GenerateIdFromFileName(string fileName) { string fileNameWithoutExtension = UpperCaseFirstCharacterOfFileNameWithoutExtension(fileName); fileNameWithoutExtension = RemoveDotCharacters(fileNameWithoutExtension); string extension = GetFileExtensionWithoutDotCharacter(fileName); extension = UpperCaseFirstCharacter(extension); string modifiedFileName = String.Concat(fileNameWithoutExtension, extension); return(WixFileElement.GenerateId(modifiedFileName)); }
public void SetUpFixture() { base.InitFixture(); editor.AddDirectory(directory); WixNamespaceManager nsManager = new WixNamespaceManager(editor.Document.NameTable); appDirectoryElement = (WixDirectoryElement)editor.Document.GetRootDirectory().FirstChild; myAppExeFileComponentElement = (WixComponentElement)appDirectoryElement.SelectSingleNode("w:Component", nsManager); myAppExeFileElement = (WixFileElement)myAppExeFileComponentElement.LastChild; docsDirectoryElement = (WixDirectoryElement)appDirectoryElement.SelectSingleNode("w:Directory[@Name='docs']", nsManager); srcDirectoryElement = (WixDirectoryElement)appDirectoryElement.SelectSingleNode("w:Directory[@Name='src']", nsManager); cssDirectoryElement = (docsDirectoryElement.GetDirectories())[0]; readmeFileElement = (WixFileElement)docsDirectoryElement.SelectSingleNode("w:Component/w:File[@Name='readme.txt']", nsManager); }
/// <summary> /// Adds a file to the specified component element. /// </summary> WixFileElement AddFile(WixComponentElement componentElement, string fileName, bool keyPath) { WixFileElement fileElement = componentElement.AddFile(fileName); if (!componentElement.HasDiskId) { componentElement.DiskId = "1"; } if (keyPath) { fileElement.KeyPath = "yes"; } return(fileElement); }
/// <summary> /// Adds a single file to the selected component element. /// </summary> void AddFile(string fileName) { WixComponentElement componentElement = view.SelectedElement as WixComponentElement; WixDirectoryElement directoryElement = view.SelectedElement as WixDirectoryElement; if (componentElement != null) { WixFileElement fileElement = AddFile(componentElement, fileName, false); view.AddElement(fileElement); view.IsDirty = true; } else if (directoryElement != null) { componentElement = AddFileWithParentComponent(directoryElement, fileName); view.AddElement(componentElement); view.IsDirty = true; } }
/// <summary> /// Creates an id from the filename. /// </summary> /// <remarks> /// Takes the filename, removes all periods, and /// capitalises the first character and first extension character. /// </remarks> public static string GenerateIdFromFileName(string fileName) { string fileNameNoExtension = Path.GetFileNameWithoutExtension(fileName); string idStart = String.Empty; if (fileNameNoExtension.Length > 0) { idStart = FirstCharacterToUpperInvariant(fileNameNoExtension).Replace(".", String.Empty); } // Remove period from extension and uppercase first extension char. string extension = Path.GetExtension(fileName); string idEnd = String.Empty; if (extension.Length > 1) { idEnd = FirstCharacterToUpperInvariant(extension.Substring(1)); } return(WixFileElement.GenerateId(String.Concat(idStart, idEnd))); }
/// <summary> /// Generates a unique id for the entire document that this file element /// belongs to. /// </summary> /// <param name="parentDirectory">The full path of the parent directory /// for the filename.</param> /// <param name="fileName">The name of the file to generate a unique /// id for. This does not include any path.</param> string GenerateUniqueId(string parentDirectory, string fileName) { string id = GenerateId(fileName); WixDocument document = (WixDocument)OwnerDocument; if (!document.FileIdExists(id)) { return(id); } // Add the file's parent directory to the id. string parentDirectoryName = WixDirectoryElement.GetLastDirectoryName(parentDirectory); if (parentDirectoryName.Length > 0) { id = String.Concat(WixFileElement.GenerateId(parentDirectoryName), ".", id); if (!document.FileIdExists(id)) { return(id); } fileName = id; } // Add a number to the file name until we get a unique id. int count = 0; string idStart = Path.GetFileNameWithoutExtension(fileName); string extension = Path.GetExtension(fileName); do { ++count; id = String.Concat(idStart, count, extension); } while (document.FileIdExists(id)); return(id); }
public void FileIdAlreadyExistsAndParentDirectoryIsRoot() { WixFileElement fileElement = new WixFileElement(doc, @"C:\license.txt"); Assert.AreEqual("license1.txt", fileElement.Id); }
public void FileIdWithNumberAlreadyExists() { component.AddFile(@"license.txt"); WixFileElement fileElement = new WixFileElement(doc, @"license.txt"); Assert.AreEqual("license2.txt", fileElement.Id); }
public void FileIdExists() { WixFileElement fileElement = new WixFileElement(doc, @"C:\Projects\Setup\doc\license.txt"); Assert.IsTrue(doc.FileIdExists("license.txt")); }
public void FileIdAlreadyExistsAndParentDirectoryUsingAltDirSeparator() { WixFileElement fileElement = new WixFileElement(doc, @"C:/Projects/Setup/doc/license.txt"); Assert.AreEqual("doc.license.txt", fileElement.Id); }
/// <summary> /// Creates a new file element with the specified filename. /// </summary> public WixFileElement AddFile(string fileName) { WixFileElement fileElement = new WixFileElement(this, fileName); return (WixFileElement)AppendChild(fileElement); }
public void FileIdAlreadyExists() { WixFileElement fileElement = new WixFileElement(doc, @"C:\Projects\Setup\doc\license.txt"); Assert.AreEqual("doc.license.txt", fileElement.Id); }
public void LongFileName() { WixFileElement fileElement = new WixFileElement(doc, @"C:\Projects\Setup\Files\LongFileName.LongExtension"); Assert.AreEqual("LongFileName.LongExtension", fileElement.Id); }
public void NewWixFileElement() { WixFileElement fileElement = new WixFileElement(doc, @"C:\Projects\Setup\Files\readme.txt"); Assert.AreEqual("readme.txt", fileElement.Id); }
public WixFileTreeNode(WixFileElement element) : base(element) { fileElement = element; ContextmenuAddinTreePath = "/AddIns/WixBinding/PackageFilesView/ContextMenu/FileTreeNode"; Refresh(); }
public void FileIdWithParentDirectoryAndNumberExists() { component.AddFile(@"C:/Projects/Setup/doc/license.txt"); WixFileElement fileElement = new WixFileElement(doc, @"C:/Projects/Setup/doc/license.txt"); Assert.AreEqual("doc.license1.txt", fileElement.Id); }
List<string> GetFileNames(WixFileElement[] fileElements) { List<string> fileNames = new List<string>(); foreach (WixFileElement fileElement in fileElements) { fileNames.Add(fileElement.GetSourceFullPath()); } return fileNames; }
public void FileIdAlreadyExistsAndParentDirectoryUsingHyphen() { WixFileElement fileElement = new WixFileElement(doc, @"C:/Projects/Setup/a-docs/readme.rtf"); Assert.AreEqual("a_docs.readme.rtf", fileElement.Id); }