@joebigelow / wix / commits / db3c7998

Remove Heat files from Core.

Sean Hall committed May 6, 2020 at 13:42 UTC db3c7998c80523d8a059f7a9c3214dbc5c8c1e23
14 files changed +5 -844
src/WixToolset.Core.Burn/WixToolset.Core.Burn.csproj
+1 -1
@@ -28,7 +28,7 @@
28 </ItemGroup>
29
30 <ItemGroup>
31 - <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0-beta2-18618-05" PrivateAssets="All"/>
31 + <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
32 <PackageReference Include="Nerdbank.GitVersioning" Version="2.1.65" PrivateAssets="all" />
33 </ItemGroup>
34 </Project>
src/WixToolset.Core.TestPackage/WixToolset.Core.TestPackage.csproj
+2 -2
@@ -1,4 +1,4 @@
1 -<?xml version="1.0" encoding="utf-8"?>
1 +<?xml version="1.0" encoding="utf-8"?>
2 <!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4 <Project Sdk="Microsoft.NET.Sdk">
@@ -22,7 +22,7 @@
22 </ItemGroup>
23
24 <ItemGroup>
25 - <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0-beta2-18618-05" PrivateAssets="All"/>
25 + <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
26 <PackageReference Include="Nerdbank.GitVersioning" Version="2.1.65" PrivateAssets="All" />
27 </ItemGroup>
28
src/WixToolset.Core.WindowsInstaller/WixToolset.Core.WindowsInstaller.csproj
+1 -1
@@ -24,7 +24,7 @@
24 </ItemGroup>
25
26 <ItemGroup>
27 - <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0-beta2-18618-05" PrivateAssets="All" />
27 + <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
28 <PackageReference Include="Nerdbank.GitVersioning" Version="2.1.65" PrivateAssets="all" />
29 </ItemGroup>
30 </Project>
src/WixToolset.Core/Extensibility/AssemblyDefaultHeatExtensionAttribute.cs deleted
-33
@@ -1,33 +0,0 @@
1 -// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 -
3 -namespace WixToolset.Tools
4 -{
5 - using System;
6 -
7 - /// <summary>
8 - /// Represents a custom attribute for declaring the type to use
9 - /// as the default heat extension in an assembly.
10 - /// </summary>
11 - public class AssemblyDefaultHeatExtensionAttribute : Attribute
12 - {
13 - private readonly Type extensionType;
14 -
15 - /// <summary>
16 - /// Instantiate a new AssemblyDefaultHeatExtensionAttribute.
17 - /// </summary>
18 - /// <param name="extensionType">The type of the default heat extension in an assembly.</param>
19 - public AssemblyDefaultHeatExtensionAttribute(Type extensionType)
20 - {
21 - this.extensionType = extensionType;
22 - }
23 -
24 - /// <summary>
25 - /// Gets the type of the default heat extension in an assembly.
26 - /// </summary>
27 - /// <value>The type of the default heat extension in an assembly.</value>
28 - public Type ExtensionType
29 - {
30 - get { return this.extensionType; }
31 - }
32 - }
33 -}
src/WixToolset.Core/Extensibility/HarvesterExtension.cs deleted
-26
@@ -1,26 +0,0 @@
1 -// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 -
3 -namespace WixToolset
4 -{
5 - using Wix = WixToolset.Data.Serialize;
6 -
7 - /// <summary>
8 - /// The base harvester extension. Any of these methods can be overridden to change
9 - /// the behavior of the harvester.
10 - /// </summary>
11 - public abstract class HarvesterExtension
12 - {
13 - /// <summary>
14 - /// Gets or sets the harvester core for the extension.
15 - /// </summary>
16 - /// <value>The harvester core for the extension.</value>
17 - public IHarvesterCore Core { get; set; }
18 -
19 - /// <summary>
20 - /// Harvest a WiX document.
21 - /// </summary>
22 - /// <param name="argument">The argument for harvesting.</param>
23 - /// <returns>The harvested Fragments.</returns>
24 - public abstract Wix.Fragment[] Harvest(string argument);
25 - }
26 -}
src/WixToolset.Core/Extensibility/HeatExtension.cs deleted
-200
@@ -1,200 +0,0 @@
1 -// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 -
3 -namespace WixToolset.Core.Extensibility
4 -{
5 - using System;
6 - using System.IO;
7 - using System.Reflection;
8 - using WixToolset.Data;
9 - using WixToolset.Tools;
10 -
11 - /// <summary>
12 - /// A command line option.
13 - /// </summary>
14 - public struct HeatCommandLineOption
15 - {
16 - public string Option;
17 -
18 - public string Description;
19 -
20 - /// <summary>
21 - /// Instantiates a new CommandLineOption.
22 - /// </summary>
23 - /// <param name="option">The option name.</param>
24 - /// <param name="description">The description of the option.</param>
25 - public HeatCommandLineOption(string option, string description)
26 - {
27 - this.Option = option;
28 - this.Description = description;
29 - }
30 - }
31 -
32 - /// <summary>
33 - /// An extension for the WiX Toolset Harvester application.
34 - /// </summary>
35 - public abstract class HeatExtension
36 - {
37 - /// <summary>
38 - /// Gets or sets the heat core for the extension.
39 - /// </summary>
40 - /// <value>The heat core for the extension.</value>
41 - public IHeatCore Core { get; set; }
42 -
43 - /// <summary>
44 - /// Gets the supported command line types for this extension.
45 - /// </summary>
46 - /// <value>The supported command line types for this extension.</value>
47 - public virtual HeatCommandLineOption[] CommandLineTypes
48 - {
49 - get { return null; }
50 - }
51 -
52 - /// <summary>
53 - /// Loads a HeatExtension from a type description string.
54 - /// </summary>
55 - /// <param name="extension">The extension type description string.</param>
56 - /// <returns>The loaded HeatExtension.</returns>
57 - /// <remarks>
58 - /// <paramref name="extension"/> can be in several different forms:
59 - /// <list type="number">
60 - /// <item><term>AssemblyQualifiedName (TopNamespace.SubNameSpace.ContainingClass+NestedClass, MyAssembly, Version=1.3.0.0, Culture=neutral, PublicKeyToken=b17a5c561934e089)</term></item>
61 - /// <item><term>AssemblyName (MyAssembly, Version=1.3.0.0, Culture=neutral, PublicKeyToken=b17a5c561934e089)</term></item>
62 - /// <item><term>Absolute path to an assembly (C:\MyExtensions\ExtensionAssembly.dll)</term></item>
63 - /// <item><term>Filename of an assembly in the application directory (ExtensionAssembly.dll)</term></item>
64 - /// <item><term>Relative path to an assembly (..\..\MyExtensions\ExtensionAssembly.dll)</term></item>
65 - /// </list>
66 - /// To specify a particular class to use, prefix the fully qualified class name to the assembly and separate them with a comma.
67 - /// For example: "TopNamespace.SubNameSpace.ContainingClass+NestedClass, C:\MyExtensions\ExtensionAssembly.dll"
68 - /// </remarks>
69 - public static HeatExtension Load(string extension)
70 - {
71 - Type extensionType = null;
72 - int commaIndex = extension.IndexOf(',');
73 - string className = String.Empty;
74 - string assemblyName = extension;
75 -
76 - if (0 <= commaIndex)
77 - {
78 - className = extension.Substring(0, commaIndex);
79 - assemblyName = (extension.Length <= commaIndex + 1 ? String.Empty : extension.Substring(commaIndex + 1));
80 - }
81 -
82 - className = className.Trim();
83 - assemblyName = assemblyName.Trim();
84 -
85 - if (null == extensionType && 0 < assemblyName.Length)
86 - {
87 -
88 - Assembly extensionAssembly;
89 -
90 - // case 3: Absolute path to an assembly
91 - if (Path.IsPathRooted(assemblyName))
92 - {
93 - extensionAssembly = ExtensionLoadFrom(assemblyName);
94 - }
95 - else
96 - {
97 - try
98 - {
99 - // case 2: AssemblyName
100 - extensionAssembly = Assembly.Load(assemblyName);
101 - }
102 - catch (IOException e)
103 - {
104 - if (e is FileLoadException || e is FileNotFoundException)
105 - {
106 - try
107 - {
108 - // case 4: Filename of an assembly in the application directory
109 - extensionAssembly = Assembly.Load(Path.GetFileNameWithoutExtension(assemblyName));
110 - }
111 - catch (IOException innerE)
112 - {
113 - if (innerE is FileLoadException || innerE is FileNotFoundException)
114 - {
115 - // case 5: Relative path to an assembly
116 -
117 - // we want to use Assembly.Load when we can because it has some benefits over Assembly.LoadFrom
118 - // (see the documentation for Assembly.LoadFrom). However, it may fail when the path is a relative
119 - // path, so we should try Assembly.LoadFrom one last time. We could have detected a directory
120 - // separator character and used Assembly.LoadFrom directly, but dealing with path canonicalization
121 - // issues is something we don't want to deal with if we don't have to.
122 - extensionAssembly = ExtensionLoadFrom(assemblyName);
123 - }
124 - else
125 - {
126 - throw new WixException(ErrorMessages.InvalidExtension(assemblyName, innerE.Message));
127 - }
128 - }
129 - }
130 - else
131 - {
132 - throw new WixException(ErrorMessages.InvalidExtension(assemblyName, e.Message));
133 - }
134 - }
135 - }
136 -
137 - if (0 < className.Length)
138 - {
139 - try
140 - {
141 - // case 1: AssemblyQualifiedName
142 - extensionType = extensionAssembly.GetType(className, true /* throwOnError */, true /* ignoreCase */);
143 - }
144 - catch (Exception e)
145 - {
146 - throw new WixException(ErrorMessages.InvalidExtensionType(assemblyName, className, e.GetType().ToString(), e.Message));
147 - }
148 - }
149 - else
150 - {
151 - // if no class name was specified, then let's hope the assembly defined a default WixExtension
152 - AssemblyDefaultHeatExtensionAttribute extensionAttribute = (AssemblyDefaultHeatExtensionAttribute)Attribute.GetCustomAttribute(extensionAssembly, typeof(AssemblyDefaultHeatExtensionAttribute));
153 -
154 - if (null != extensionAttribute)
155 - {
156 - extensionType = extensionAttribute.ExtensionType;
157 - }
158 - else
159 - {
160 - throw new WixException(ErrorMessages.InvalidExtensionType(assemblyName, typeof(AssemblyDefaultHeatExtensionAttribute).ToString()));
161 - }
162 - }
163 - }
164 -
165 - if (extensionType.IsSubclassOf(typeof(HeatExtension)))
166 - {
167 - return Activator.CreateInstance(extensionType) as HeatExtension;
168 - }
169 - else
170 - {
171 - throw new WixException(ErrorMessages.InvalidExtensionType(extension, extensionType.ToString(), typeof(HeatExtension).ToString()));
172 - }
173 - }
174 -
175 - /// <summary>
176 - /// Parse the command line options for this extension.
177 - /// </summary>
178 - /// <param name="type">The active harvester type.</param>
179 - /// <param name="args">The option arguments.</param>
180 - public virtual void ParseOptions(string type, string[] args)
181 - {
182 - }
183 -
184 - private static Assembly ExtensionLoadFrom(string assemblyName)
185 - {
186 - Assembly extensionAssembly = null;
187 -
188 - try
189 - {
190 - extensionAssembly = Assembly.LoadFrom(assemblyName);
191 - }
192 - catch (Exception e)
193 - {
194 - throw new WixException(ErrorMessages.InvalidExtension(assemblyName, e.Message));
195 - }
196 -
197 - return extensionAssembly;
198 - }
199 - }
200 -}
src/WixToolset.Core/Extensibility/IHarvesterCore.cs deleted
-48
@@ -1,48 +0,0 @@
1 -// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 -
3 -namespace WixToolset
4 -{
5 - using WixToolset.Extensibility.Services;
6 -
7 - /// <summary>
8 - /// The WiX Toolset harvester core.
9 - /// </summary>
10 - public interface IHarvesterCore
11 - {
12 - IMessaging Messaging { get; set; }
13 -
14 - /// <summary>
15 - /// Gets or sets the value of the extension argument passed to heat.
16 - /// </summary>
17 - /// <value>The extension argument.</value>
18 - string ExtensionArgument { get; set; }
19 -
20 - /// <summary>
21 - /// Gets or sets the value of the root directory that is being harvested.
22 - /// </summary>
23 - /// <value>The root directory being harvested.</value>
24 - string RootDirectory { get; set; }
25 -
26 - /// <summary>
27 - /// Create an identifier based on passed file name
28 - /// </summary>
29 - /// <param name="name">File name to generate identifer from</param>
30 - /// <returns></returns>
31 - string CreateIdentifierFromFilename(string filename);
32 -
33 - /// <summary>
34 - /// Generate an identifier by hashing data from the row.
35 - /// </summary>
36 - /// <param name="prefix">Three letter or less prefix for generated row identifier.</param>
37 - /// <param name="args">Information to hash.</param>
38 - /// <returns>The generated identifier.</returns>
39 - string GenerateIdentifier(string prefix, params string[] args);
40 -
41 - /// <summary>
42 - /// Resolves a file's path if the Wix.File.Source value starts with "SourceDir\".
43 - /// </summary>
44 - /// <param name="fileSource">The Wix.File.Source value with "SourceDir\".</param>
45 - /// <returns>The full path of the file.</returns>
46 - string ResolveFilePath(string fileSource);
47 - }
48 -}
src/WixToolset.Core/Extensibility/IHeatCore.cs deleted
-22
@@ -1,22 +0,0 @@
1 -// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 -
3 -namespace WixToolset.Core.Extensibility
4 -{
5 - /// <summary>
6 - /// The WiX Toolset Harvester application core.
7 - /// </summary>
8 - public interface IHeatCore
9 - {
10 - /// <summary>
11 - /// Gets the harvester.
12 - /// </summary>
13 - /// <value>The harvester.</value>
14 - Harvester Harvester { get; }
15 -
16 - /// <summary>
17 - /// Gets the mutator.
18 - /// </summary>
19 - /// <value>The mutator.</value>
20 - Mutator Mutator { get; }
21 - }
22 -}
src/WixToolset.Core/Extensibility/MutatorExtension.cs deleted
-198
@@ -1,198 +0,0 @@
1 -// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 -
3 -namespace WixToolset.Core.Extensibility
4 -{
5 - using System;
6 - using System.Collections.Generic;
7 - using System.Diagnostics.CodeAnalysis;
8 - using System.Text;
9 -
10 - using Wix = WixToolset.Data.Serialize;
11 -
12 - /// <summary>
13 - /// The base mutator extension. Any of these methods can be overridden to change
14 - /// the behavior of the mutator.
15 - /// </summary>
16 - public abstract class MutatorExtension
17 - {
18 - /// <summary>
19 - /// Gets or sets the mutator core for the extension.
20 - /// </summary>
21 - /// <value>The mutator core for the extension.</value>
22 - public IHarvesterCore Core { get; set; }
23 -
24 - /// <summary>
25 - /// Gets the sequence of the extension.
26 - /// </summary>
27 - /// <value>The sequence of the extension.</value>
28 - public abstract int Sequence
29 - {
30 - get;
31 - }
32 -
33 - /// <summary>
34 - /// Mutate a WiX document.
35 - /// </summary>
36 - /// <param name="wix">The Wix document element.</param>
37 - public virtual void Mutate(Wix.Wix wix)
38 - {
39 - }
40 -
41 - /// <summary>
42 - /// Mutate a WiX document as a string.
43 - /// </summary>
44 - /// <param name="wix">The Wix document element as a string.</param>
45 - /// <returns>The mutated Wix document as a string.</returns>
46 - public virtual string Mutate(string wixString)
47 - {
48 - return wixString;
49 - }
50 -
51 - /// <summary>
52 - /// Generate unique MSI identifiers.
53 - /// </summary>
54 - protected class IdentifierGenerator
55 - {
56 - public const int MaxProductIdentifierLength = 72;
57 - public const int MaxModuleIdentifierLength = 35;
58 -
59 - private string baseName;
60 - private int maxLength;
61 - private Dictionary<string, object> existingIdentifiers;
62 - private Dictionary<string, object> possibleIdentifiers;
63 -
64 - /// <summary>
65 - /// Instantiate a new IdentifierGenerator.
66 - /// </summary>
67 - /// <param name="baseName">The base resource name to use if a resource name contains no usable characters.</param>
68 - public IdentifierGenerator(string baseName)
69 - {
70 - this.baseName = baseName;
71 - this.maxLength = IdentifierGenerator.MaxProductIdentifierLength;
72 - this.existingIdentifiers = new Dictionary<string, object>(StringComparer.OrdinalIgnoreCase);
73 - this.possibleIdentifiers = new Dictionary<string, object>(StringComparer.OrdinalIgnoreCase);
74 - }
75 -
76 - /// <summary>
77 - /// Gets or sets the maximum length for generated identifiers.
78 - /// </summary>
79 - /// <value>Maximum length for generated identifiers. (Default is 72.)</value>
80 - public int MaxIdentifierLength
81 - {
82 - get { return this.maxLength; }
83 - set { this.maxLength = value; }
84 - }
85 -
86 - /// <summary>
87 - /// Index an existing identifier for collision detection.
88 - /// </summary>
89 - /// <param name="identifier">The identifier.</param>
90 - public void IndexExistingIdentifier(string identifier)
91 - {
92 - if (null == identifier)
93 - {
94 - throw new ArgumentNullException("identifier");
95 - }
96 -
97 - this.existingIdentifiers[identifier] = null;
98 - }
99 -
100 - /// <summary>
101 - /// Index a resource name for collision detection.
102 - /// </summary>
103 - /// <param name="name">The resource name.</param>
104 - public void IndexName(string name)
105 - {
106 - if (null == name)
107 - {
108 - throw new ArgumentNullException("name");
109 - }
110 -
111 - string identifier = this.CreateIdentifier(name, 0);
112 -
113 - if (this.possibleIdentifiers.ContainsKey(identifier))
114 - {
115 - this.possibleIdentifiers[identifier] = String.Empty;
116 - }
117 - else
118 - {
119 - this.possibleIdentifiers.Add(identifier, null);
120 - }
121 - }
122 -
123 - /// <summary>
124 - /// Get the identifier for the given resource name.
125 - /// </summary>
126 - /// <param name="name">The resource name.</param>
127 - /// <returns>A legal MSI identifier.</returns>
128 - [SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.InvalidOperationException.#ctor(System.String)")]
129 - public string GetIdentifier(string name)
130 - {
131 - if (null == name)
132 - {
133 - throw new ArgumentNullException("name");
134 - }
135 -
136 - for (int i = 0; i <= Int32.MaxValue; i++)
137 - {
138 - string identifier = this.CreateIdentifier(name, i);
139 -
140 - if (this.existingIdentifiers.ContainsKey(identifier) || // already used
141 - (0 == i && 0 != this.possibleIdentifiers.Count && null != this.possibleIdentifiers[identifier]) || // needs an index because its duplicated
142 - (0 != i && this.possibleIdentifiers.ContainsKey(identifier))) // collides with another possible identifier
143 - {
144 - continue;
145 - }
146 - else // use this identifier
147 - {
148 - this.existingIdentifiers.Add(identifier, null);
149 -
150 - return identifier;
151 - }
152 - }
153 -
154 - throw new InvalidOperationException("Could not find a unique identifier for the given resource name.");
155 - }
156 -
157 - /// <summary>
158 - /// Create a legal MSI identifier from a resource name and an index.
159 - /// </summary>
160 - /// <param name="name">The name of the resource for which an identifier should be created.</param>
161 - /// <param name="index">An index to append to the end of the identifier to make it unique.</param>
162 - /// <returns>A legal MSI identifier.</returns>
163 - public string CreateIdentifier(string name, int index)
164 - {
165 - if (null == name)
166 - {
167 - throw new ArgumentNullException("name");
168 - }
169 -
170 - StringBuilder identifier = new StringBuilder();
171 -
172 - // Convert the name to a standard MSI identifier
173 - identifier.Append(Common.GetIdentifierFromName(name));
174 -
175 - // no legal identifier characters were found, use the base id instead
176 - if (0 == identifier.Length)
177 - {
178 - identifier.Append(this.baseName);
179 - }
180 -
181 - // truncate the identifier if it's too long (reserve 3 characters for up to 99 collisions)
182 - int adjustedMaxLength = this.MaxIdentifierLength - (index != 0 ? 3 : 0);
183 - if (adjustedMaxLength < identifier.Length)
184 - {
185 - identifier.Length = adjustedMaxLength;
186 - }
187 -
188 - // if the index is not zero, then append it to the identifier name
189 - if (0 != index)
190 - {
191 - identifier.AppendFormat("_{0}", index);
192 - }
193 -
194 - return identifier.ToString();
195 - }
196 - }
197 - }
198 -}
src/WixToolset.Core/Harvester.cs deleted
-79
@@ -1,79 +0,0 @@
1 -// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 -
3 -namespace WixToolset.Core
4 -{
5 - using System;
6 - using System.Diagnostics.CodeAnalysis;
7 - using WixToolset.Data;
8 - using Wix = WixToolset.Data.Serialize;
9 -
10 - /// <summary>
11 - /// The WiX Toolset harvester.
12 - /// </summary>
13 - public class Harvester
14 - {
15 - private HarvesterExtension harvesterExtension;
16 -
17 - /// <summary>
18 - /// Gets or sets the harvester core for the extension.
19 - /// </summary>
20 - /// <value>The harvester core for the extension.</value>
21 - public IHarvesterCore Core { get; set; }
22 -
23 - /// <summary>
24 - /// Gets or sets the extension.
25 - /// </summary>
26 - /// <value>The extension.</value>
27 - [SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.InvalidOperationException.#ctor(System.String)")]
28 - public HarvesterExtension Extension
29 - {
30 - get
31 - {
32 - return this.harvesterExtension;
33 - }
34 - set
35 - {
36 - if (null != this.harvesterExtension)
37 - {
38 - throw new InvalidOperationException("Multiple harvester extensions specified.");
39 - }
40 -
41 - this.harvesterExtension = value;
42 - }
43 - }
44 -
45 - /// <summary>
46 - /// Harvest wix authoring.
47 - /// </summary>
48 - /// <param name="argument">The argument for harvesting.</param>
49 - /// <returns>The harvested wix authoring.</returns>
50 - public Wix.Wix Harvest(string argument)
51 - {
52 - if (null == argument)
53 - {
54 - throw new ArgumentNullException("argument");
55 - }
56 -
57 - if (null == this.harvesterExtension)
58 - {
59 - throw new WixException(ErrorMessages.HarvestTypeNotFound());
60 - }
61 -
62 - this.harvesterExtension.Core = this.Core;
63 -
64 - Wix.Fragment[] fragments = this.harvesterExtension.Harvest(argument);
65 - if (null == fragments || 0 == fragments.Length)
66 - {
67 - return null;
68 - }
69 -
70 - Wix.Wix wix = new Wix.Wix();
71 - foreach (Wix.Fragment fragment in fragments)
72 - {
73 - wix.AddChild(fragment);
74 - }
75 -
76 - return wix;
77 - }
78 - }
79 -}
src/WixToolset.Core/HarvesterCore.cs deleted
-75
@@ -1,75 +0,0 @@
1 -// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 -
3 -namespace WixToolset.Core
4 -{
5 - using System;
6 - using System.Diagnostics.CodeAnalysis;
7 - using System.IO;
8 - using WixToolset.Extensibility.Services;
9 -
10 - /// <summary>
11 - /// The WiX Toolset harvester core.
12 - /// </summary>
13 - public class HarvesterCore : IHarvesterCore
14 - {
15 - public IMessaging Messaging { get; set; }
16 -
17 - /// <summary>
18 - /// Gets or sets the value of the extension argument passed to heat.
19 - /// </summary>
20 - /// <value>The extension argument.</value>
21 - public string ExtensionArgument { get; set; }
22 -
23 - /// <summary>
24 - /// Gets or sets the value of the root directory that is being harvested.
25 - /// </summary>
26 - /// <value>The root directory being harvested.</value>
27 - public string RootDirectory { get; set; }
28 -
29 - /// <summary>
30 - /// Create an identifier based on passed file name
31 - /// </summary>
32 - /// <param name="name">File name to generate identifer from</param>
33 - /// <returns></returns>
34 - public string CreateIdentifierFromFilename(string filename)
35 - {
36 - return Common.GetIdentifierFromName(filename);
37 - }
38 -
39 - /// <summary>
40 - /// Generate an identifier by hashing data from the row.
41 - /// </summary>
42 - /// <param name="prefix">Three letter or less prefix for generated row identifier.</param>
43 - /// <param name="args">Information to hash.</param>
44 - /// <returns>The generated identifier.</returns>
45 - [SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.InvalidOperationException.#ctor(System.String)")]
46 - public string GenerateIdentifier(string prefix, params string[] args)
47 - {
48 - return Common.GenerateIdentifier(prefix, args);
49 - }
50 -
51 - /// <summary>
52 - /// Resolves a file's path if the Wix.File.Source value starts with "SourceDir\".
53 - /// </summary>
54 - /// <param name="fileSource">The Wix.File.Source value with "SourceDir\".</param>
55 - /// <returns>The full path of the file.</returns>
56 - public string ResolveFilePath(string fileSource)
57 - {
58 - if (fileSource.StartsWith("SourceDir\\", StringComparison.Ordinal))
59 - {
60 - string file = Path.GetFullPath(this.RootDirectory);
61 - if (File.Exists(file))
62 - {
63 - return file;
64 - }
65 - else
66 - {
67 - fileSource = fileSource.Substring(10);
68 - fileSource = Path.Combine(Path.GetFullPath(this.RootDirectory), fileSource);
69 - }
70 - }
71 -
72 - return fileSource;
73 - }
74 - }
75 -}
src/WixToolset.Core/HeatCore.cs deleted
-43
@@ -1,43 +0,0 @@
1 -// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 -
3 -namespace WixToolset.Core
4 -{
5 - using WixToolset.Core.Extensibility;
6 -
7 - /// <summary>
8 - /// The WiX Toolset Harvester application core.
9 - /// </summary>
10 - public class HeatCore : IHeatCore
11 - {
12 - private Harvester harvester;
13 - private Mutator mutator;
14 -
15 - /// <summary>
16 - /// Instantiates a new HeatCore.
17 - /// </summary>
18 - /// <param name="messageHandler">The message handler for the core.</param>
19 - public HeatCore()
20 - {
21 - this.harvester = new Harvester();
22 - this.mutator = new Mutator();
23 - }
24 -
25 - /// <summary>
26 - /// Gets the harvester.
27 - /// </summary>
28 - /// <value>The harvester.</value>
29 - public Harvester Harvester
30 - {
31 - get { return this.harvester; }
32 - }
33 -
34 - /// <summary>
35 - /// Gets the mutator.
36 - /// </summary>
37 - /// <value>The mutator.</value>
38 - public Mutator Mutator
39 - {
40 - get { return this.mutator; }
41 - }
42 - }
43 -}
src/WixToolset.Core/Mutator.cs deleted
-115
@@ -1,115 +0,0 @@
1 -// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 -
3 -namespace WixToolset.Core
4 -{
5 - using System;
6 - using System.Collections;
7 - using WixToolset.Core.Extensibility;
8 - using Wix = WixToolset.Data.Serialize;
9 -
10 - /// <summary>
11 - /// The WiX Toolset mutator.
12 - /// </summary>
13 - public class Mutator
14 - {
15 - private SortedList extensions;
16 - private string extensionArgument;
17 -
18 - /// <summary>
19 - /// Instantiate a new mutator.
20 - /// </summary>
21 - public Mutator()
22 - {
23 - this.extensions = new SortedList();
24 - }
25 -
26 - /// <summary>
27 - /// Gets or sets the harvester core for the extension.
28 - /// </summary>
29 - /// <value>The harvester core for the extension.</value>
30 - public IHarvesterCore Core { get; set; }
31 -
32 - /// <summary>
33 - /// Gets or sets the value of the extension argument passed to heat.
34 - /// </summary>
35 - /// <value>The extension argument.</value>
36 - public string ExtensionArgument
37 - {
38 - get { return this.extensionArgument; }
39 - set { this.extensionArgument = value; }
40 - }
41 -
42 - /// <summary>
43 - /// Adds a mutator extension.
44 - /// </summary>
45 - /// <param name="mutatorExtension">The mutator extension to add.</param>
46 - public void AddExtension(MutatorExtension mutatorExtension)
47 - {
48 - this.extensions.Add(mutatorExtension.Sequence, mutatorExtension);
49 - }
50 -
51 - /// <summary>
52 - /// Mutate a WiX document.
53 - /// </summary>
54 - /// <param name="wix">The Wix document element.</param>
55 - /// <returns>true if mutation was successful</returns>
56 - public bool Mutate(Wix.Wix wix)
57 - {
58 - bool encounteredError = false;
59 -
60 - try
61 - {
62 - foreach (MutatorExtension mutatorExtension in this.extensions.Values)
63 - {
64 - if (null == mutatorExtension.Core)
65 - {
66 - mutatorExtension.Core = this.Core;
67 - }
68 -
69 - mutatorExtension.Mutate(wix);
70 - }
71 - }
72 - finally
73 - {
74 - encounteredError = this.Core.Messaging.EncounteredError;
75 - }
76 -
77 - // return the Wix document element only if mutation completed successfully
78 - return !encounteredError;
79 - }
80 -
81 - /// <summary>
82 - /// Mutate a WiX document.
83 - /// </summary>
84 - /// <param name="wixString">The Wix document as a string.</param>
85 - /// <returns>The mutated Wix document as a string if mutation was successful, else null.</returns>
86 - public string Mutate(string wixString)
87 - {
88 - bool encounteredError = false;
89 -
90 - try
91 - {
92 - foreach (MutatorExtension mutatorExtension in this.extensions.Values)
93 - {
94 - if (null == mutatorExtension.Core)
95 - {
96 - mutatorExtension.Core = this.Core;
97 - }
98 -
99 - wixString = mutatorExtension.Mutate(wixString);
100 -
101 - if (String.IsNullOrEmpty(wixString) || this.Core.Messaging.EncounteredError)
102 - {
103 - break;
104 - }
105 - }
106 - }
107 - finally
108 - {
109 - encounteredError = this.Core.Messaging.EncounteredError;
110 - }
111 -
112 - return encounteredError ? null : wixString;
113 - }
114 - }
115 -}
src/WixToolset.Core/WixToolset.Core.csproj
+1 -1
@@ -25,7 +25,7 @@
25 </ItemGroup>
26
27 <ItemGroup>
28 - <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0-beta2-18618-05" PrivateAssets="All" />
28 + <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />
29 <PackageReference Include="Nerdbank.GitVersioning" Version="2.1.65" PrivateAssets="All" />
30 </ItemGroup>
31 </Project>