コード例 #1
0
        public void TestGenerateComponent()
        {
            var files = new List <WixFile>
            {
                new WixFile("C:\\Anapher.Wpf.Toolkit.Metro.dll", null),
                new WixFile("C:\\Anapher.Wpf.Toolkit.dll", null),
                new WixFile("C:\\CodeElements.Async.dll", null),
                new WixFile("C:\\Test\\Programs\\CodeElements.Async.dll", null),
                new WixFile("C:\\Test\\Programs\\CodeElements.Suite.LicenseSystem.dll", "suite"),
                new WixFile("C:\\Test\\CodeElements.Suite.LicenseSystem.pdb", "suite"),
                new WixFile("C:\\Test\\CodeElements.Suite.Resources.dll", "suite"),
                new WixFile("C:\\CodeElements.Suite.SyntaxHighlightBox.dll", "suite\\res"),
                new WixFile("C:\\odeElements.Suite.SyntaxHighlightBox.dll", "suite\\res")
            };

            var generator = new WixComponentGenerator("CodeElementsFiles", "MainDirectory");
            var result    = Generate(generator, files);

            const string expected = @"<?xml version=""1.0"" encoding=""utf-16""?>
<Wix xmlns=""http://schemas.microsoft.com/wix/2006/wi"">
  <Fragment>
    <DirectoryRef Id=""MainDirectory"">
      <Component Id=""cmpRANDOM"" Guid=""GUID"">
        <File Id=""fiRANDOM"" KeyPath=""yes"" Source=""C:\Anapher.Wpf.Toolkit.Metro.dll"" />
      </Component>
      <Component Id=""cmpRANDOM"" Guid=""GUID"">
        <File Id=""fiRANDOM"" KeyPath=""yes"" Source=""C:\Anapher.Wpf.Toolkit.dll"" />
      </Component>
      <Component Id=""cmpRANDOM"" Guid=""GUID"">
        <File Id=""fiRANDOM"" KeyPath=""yes"" Source=""C:\CodeElements.Async.dll"" />
      </Component>
      <Component Id=""cmpRANDOM"" Guid=""GUID"">
        <File Id=""fiRANDOM"" KeyPath=""yes"" Source=""C:\Test\Programs\CodeElements.Async.dll"" />
      </Component>
      <Directory Id=""dirRANDOM"" Name=""suite"">
        <Component Id=""cmpRANDOM"" Guid=""GUID"">
          <File Id=""fiRANDOM"" KeyPath=""yes"" Source=""C:\Test\Programs\CodeElements.Suite.LicenseSystem.dll"" />
        </Component>
        <Directory Id=""dirRANDOM"" Name=""res"">
          <Component Id=""cmpRANDOM"" Guid=""GUID"">
            <File Id=""fiRANDOM"" KeyPath=""yes"" Source=""C:\CodeElements.Suite.SyntaxHighlightBox.dll"" />
          </Component>
        </Directory>
      </Directory>
    </DirectoryRef>
  </Fragment>
  <Fragment>
    <ComponentGroup Id=""CodeElementsFiles"">
      <ComponentRef Id=""cmpRANDOM"" />
      <ComponentRef Id=""cmpRANDOM"" />
      <ComponentRef Id=""cmpRANDOM"" />
      <ComponentRef Id=""cmpRANDOM"" />
      <ComponentRef Id=""cmpRANDOM"" />
      <ComponentRef Id=""cmpRANDOM"" />
    </ComponentGroup>
  </Fragment>
</Wix>";

            CompareDocuments(result, expected);
        }
コード例 #2
0
        private static string Generate(WixComponentGenerator generator, IEnumerable <WixFile> files)
        {
            var stringWriter = new StringWriter();

            using (var xmlWriter = XmlWriter.Create(stringWriter, new XmlWriterSettings {
                Indent = true
            }))
            {
                generator.Write(files, xmlWriter);
            }

            return(stringWriter.ToString());
        }
コード例 #3
0
        public string GeneratePackagesComponentFile(string outputDirectory, Dictionary <PackageIdentity, FileInfoBase> files)
        {
            var filename = _fileSystem.Path.Combine(outputDirectory, PackagesComponentsFilename);

            using (var xmlWriter = XmlWriter.Create(filename, new XmlWriterSettings {
                Indent = true
            }))
            {
                var generator = new WixComponentGenerator("PackageComponents", "MazePackages");
                generator.Write(files.Select(x => new WixFile(x.Value.FullName, x.Key.ToString())), xmlWriter);
            }

            return(filename);
        }