aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2019-12-22 10:33:15 +1100
committerSean Hall <r.sean.hall@gmail.com>2019-12-22 13:19:29 +1000
commit0c3a3b3a7d724a8eb0cb62de05354040d7d1a9f4 (patch)
tree55d84dab3ae76fd0319d929f780ebcd33e147d49
parent24379873f589cff33965f1104041f61c0c4503e0 (diff)
downloadwix-0c3a3b3a7d724a8eb0cb62de05354040d7d1a9f4.tar.gz
wix-0c3a3b3a7d724a8eb0cb62de05354040d7d1a9f4.tar.bz2
wix-0c3a3b3a7d724a8eb0cb62de05354040d7d1a9f4.zip
Move the entry point from Mba.Core to Mba.Host.
-rw-r--r--src/WixToolset.Mba.Core/BootstrapperApplicationFactory.cs84
-rw-r--r--src/WixToolset.Mba.Core/BootstrapperSectionGroup.cs29
-rw-r--r--src/WixToolset.Mba.Core/Exceptions.cs145
-rw-r--r--src/WixToolset.Mba.Core/HostSection.cs47
-rw-r--r--src/WixToolset.Mba.Core/SupportedFrameworkElement.cs47
-rw-r--r--src/WixToolset.Mba.Core/SupportedFrameworkElementCollection.cs36
-rw-r--r--src/WixToolset.Mba.Core/WixToolset.Mba.Core.config26
-rw-r--r--src/WixToolset.Mba.Core/WixToolset.Mba.Core.csproj37
-rw-r--r--src/WixToolset.Mba.Core/WixToolset.Mba.Core.nuspec2
9 files changed, 1 insertions, 452 deletions
diff --git a/src/WixToolset.Mba.Core/BootstrapperApplicationFactory.cs b/src/WixToolset.Mba.Core/BootstrapperApplicationFactory.cs
deleted file mode 100644
index 55f0e83b..00000000
--- a/src/WixToolset.Mba.Core/BootstrapperApplicationFactory.cs
+++ /dev/null
@@ -1,84 +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
3namespace WixToolset.Mba.Core
4{
5 using System;
6 using System.Configuration;
7 using System.Reflection;
8 using System.Runtime.InteropServices;
9
10 /// <summary>
11 /// Entry point for the MBA host to create and return the BA to the engine.
12 /// </summary>
13 [ClassInterface(ClassInterfaceType.None)]
14 public sealed class BootstrapperApplicationFactory : MarshalByRefObject, IBootstrapperApplicationFactory
15 {
16 /// <summary>
17 /// Creates a new instance of the <see cref="BootstrapperApplicationFactory"/> class.
18 /// </summary>
19 public BootstrapperApplicationFactory()
20 {
21 }
22
23 /// <summary>
24 /// Loads the bootstrapper application assembly and calls its IBootstrapperApplicationFactory.Create method.
25 /// </summary>
26 /// <param name="pArgs">Pointer to BOOTSTRAPPER_CREATE_ARGS struct.</param>
27 /// <param name="pResults">Pointer to BOOTSTRAPPER_CREATE_RESULTS struct.</param>
28 /// <exception cref="MissingAttributeException">The bootstrapper application assembly
29 /// does not define the <see cref="BootstrapperApplicationFactoryAttribute"/>.</exception>
30 public void Create(IntPtr pArgs, IntPtr pResults)
31 {
32 // Get the wix.boostrapper section group to get the name of the bootstrapper application assembly to host.
33 var section = ConfigurationManager.GetSection("wix.bootstrapper/host") as HostSection;
34 if (null == section)
35 {
36 throw new MissingAttributeException(); // TODO: throw a more specific exception than this.
37 }
38
39 // Load the BA's IBootstrapperApplicationFactory.
40 var baFactoryType = BootstrapperApplicationFactory.GetBAFactoryTypeFromAssembly(section.AssemblyName);
41 var baFactory = (IBootstrapperApplicationFactory)Activator.CreateInstance(baFactoryType);
42 if (null == baFactory)
43 {
44 throw new InvalidBootstrapperApplicationFactoryException();
45 }
46
47 baFactory.Create(pArgs, pResults);
48 }
49
50 /// <summary>
51 /// Locates the <see cref="BootstrapperApplicationFactoryAttribute"/> and returns the specified type.
52 /// </summary>
53 /// <param name="assemblyName">The assembly that defines the IBootstrapperApplicationFactory implementation.</param>
54 /// <returns>The bootstrapper application factory <see cref="Type"/>.</returns>
55 private static Type GetBAFactoryTypeFromAssembly(string assemblyName)
56 {
57 Type baFactoryType = null;
58
59 // Load the requested assembly.
60 Assembly asm = AppDomain.CurrentDomain.Load(assemblyName);
61
62 // If an assembly was loaded and is not the current assembly, check for the required attribute.
63 // This is done to avoid using the BootstrapperApplicationFactoryAttribute which we use at build time
64 // to specify the BootstrapperApplicationFactory assembly in the manifest.
65 if (!Assembly.GetExecutingAssembly().Equals(asm))
66 {
67 // There must be one and only one BootstrapperApplicationFactoryAttribute.
68 // The attribute prevents multiple declarations already.
69 var attrs = (BootstrapperApplicationFactoryAttribute[])asm.GetCustomAttributes(typeof(BootstrapperApplicationFactoryAttribute), false);
70 if (null != attrs)
71 {
72 baFactoryType = attrs[0].BootstrapperApplicationFactoryType;
73 }
74 }
75
76 if (null == baFactoryType)
77 {
78 throw new MissingAttributeException();
79 }
80
81 return baFactoryType;
82 }
83 }
84}
diff --git a/src/WixToolset.Mba.Core/BootstrapperSectionGroup.cs b/src/WixToolset.Mba.Core/BootstrapperSectionGroup.cs
deleted file mode 100644
index f307e53e..00000000
--- a/src/WixToolset.Mba.Core/BootstrapperSectionGroup.cs
+++ /dev/null
@@ -1,29 +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
3namespace WixToolset.Mba.Core
4{
5 using System;
6 using System.Configuration;
7
8 /// <summary>
9 /// Handler for the wix.bootstrapper configuration section group.
10 /// </summary>
11 public class BootstrapperSectionGroup : ConfigurationSectionGroup
12 {
13 /// <summary>
14 /// Creates a new instance of the <see cref="BootstrapperSectionGroup"/> class.
15 /// </summary>
16 public BootstrapperSectionGroup()
17 {
18 }
19
20 /// <summary>
21 /// Gets the <see cref="HostSection"/> handler for the mba configuration section.
22 /// </summary>
23 [ConfigurationProperty("host")]
24 public HostSection Host
25 {
26 get { return (HostSection)base.Sections["host"]; }
27 }
28 }
29}
diff --git a/src/WixToolset.Mba.Core/Exceptions.cs b/src/WixToolset.Mba.Core/Exceptions.cs
deleted file mode 100644
index 72669a42..00000000
--- a/src/WixToolset.Mba.Core/Exceptions.cs
+++ /dev/null
@@ -1,145 +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
3namespace WixToolset.Mba.Core
4{
5 using System;
6 using System.Runtime.Serialization;
7
8 /// <summary>
9 /// Base class for exception returned to the bootstrapper application host.
10 /// </summary>
11 [Serializable]
12 public abstract class BootstrapperException : Exception
13 {
14 /// <summary>
15 /// Creates an instance of the <see cref="BootstrapperException"/> base class with the given HRESULT.
16 /// </summary>
17 /// <param name="hr">The HRESULT for the exception that is used by the bootstrapper application host.</param>
18 public BootstrapperException(int hr)
19 {
20 this.HResult = hr;
21 }
22
23 /// <summary>
24 /// Initializes a new instance of the <see cref="BootstrapperException"/> class.
25 /// </summary>
26 /// <param name="message">Exception message.</param>
27 public BootstrapperException(string message)
28 : base(message)
29 {
30 }
31
32 /// <summary>
33 /// Initializes a new instance of the <see cref="BootstrapperException"/> class.
34 /// </summary>
35 /// <param name="message">Exception message</param>
36 /// <param name="innerException">Inner exception associated with this one</param>
37 public BootstrapperException(string message, Exception innerException)
38 : base(message, innerException)
39 {
40 }
41
42 /// <summary>
43 /// Initializes a new instance of the <see cref="BootstrapperException"/> class.
44 /// </summary>
45 /// <param name="info">Serialization information for this exception</param>
46 /// <param name="context">Streaming context to serialize to</param>
47 protected BootstrapperException(SerializationInfo info, StreamingContext context)
48 : base(info, context)
49 {
50 }
51 }
52
53 /// <summary>
54 /// The bootstrapper application assembly loaded by the host does not contain exactly one instance of the
55 /// <see cref="BootstrapperApplicationFactoryAttribute"/> class.
56 /// </summary>
57 /// <seealso cref="BootstrapperApplicationFactoryAttribute"/>
58 [Serializable]
59 public class MissingAttributeException : BootstrapperException
60 {
61 /// <summary>
62 /// Creates a new instance of the <see cref="MissingAttributeException"/> class.
63 /// </summary>
64 public MissingAttributeException()
65 : base(NativeMethods.E_NOTFOUND)
66 {
67 }
68
69 /// <summary>
70 /// Initializes a new instance of the <see cref="MissingAttributeException"/> class.
71 /// </summary>
72 /// <param name="message">Exception message.</param>
73 public MissingAttributeException(string message)
74 : base(message)
75 {
76 }
77
78 /// <summary>
79 /// Initializes a new instance of the <see cref="MissingAttributeException"/> class.
80 /// </summary>
81 /// <param name="message">Exception message</param>
82 /// <param name="innerException">Inner exception associated with this one</param>
83 public MissingAttributeException(string message, Exception innerException)
84 : base(message, innerException)
85 {
86 }
87
88 /// <summary>
89 /// Initializes a new instance of the <see cref="MissingAttributeException"/> class.
90 /// </summary>
91 /// <param name="info">Serialization information for this exception</param>
92 /// <param name="context">Streaming context to serialize to</param>
93 protected MissingAttributeException(SerializationInfo info, StreamingContext context)
94 : base(info, context)
95 {
96 }
97 }
98
99 /// <summary>
100 /// The bootstrapper application factory specified by the <see cref="BootstrapperApplicationFactoryAttribute"/>
101 /// does not extend the <see cref="IBootstrapperApplicationFactory"/> base class.
102 /// </summary>
103 /// <seealso cref="BaseBootstrapperApplicationFactory"/>
104 /// <seealso cref="BootstrapperApplicationFactoryAttribute"/>
105 [Serializable]
106 public class InvalidBootstrapperApplicationFactoryException : BootstrapperException
107 {
108 /// <summary>
109 /// Creates a new instance of the <see cref="InvalidBootstrapperApplicationFactoryException"/> class.
110 /// </summary>
111 public InvalidBootstrapperApplicationFactoryException()
112 : base(NativeMethods.E_UNEXPECTED)
113 {
114 }
115
116 /// <summary>
117 /// Initializes a new instance of the <see cref="InvalidBootstrapperApplicationFactoryException"/> class.
118 /// </summary>
119 /// <param name="message">Exception message.</param>
120 public InvalidBootstrapperApplicationFactoryException(string message)
121 : base(message)
122 {
123 }
124
125 /// <summary>
126 /// Initializes a new instance of the <see cref="InvalidBootstrapperApplicationFactoryException"/> class.
127 /// </summary>
128 /// <param name="message">Exception message</param>
129 /// <param name="innerException">Inner exception associated with this one</param>
130 public InvalidBootstrapperApplicationFactoryException(string message, Exception innerException)
131 : base(message, innerException)
132 {
133 }
134
135 /// <summary>
136 /// Initializes a new instance of the <see cref="InvalidBootstrapperApplicationFactoryException"/> class.
137 /// </summary>
138 /// <param name="info">Serialization information for this exception</param>
139 /// <param name="context">Streaming context to serialize to</param>
140 protected InvalidBootstrapperApplicationFactoryException(SerializationInfo info, StreamingContext context)
141 : base(info, context)
142 {
143 }
144 }
145}
diff --git a/src/WixToolset.Mba.Core/HostSection.cs b/src/WixToolset.Mba.Core/HostSection.cs
deleted file mode 100644
index 2586f565..00000000
--- a/src/WixToolset.Mba.Core/HostSection.cs
+++ /dev/null
@@ -1,47 +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
3namespace WixToolset.Mba.Core
4{
5 using System;
6 using System.Configuration;
7
8 /// <summary>
9 /// Handler for the Host configuration section.
10 /// </summary>
11 public sealed class HostSection : ConfigurationSection
12 {
13 private static readonly ConfigurationProperty assemblyNameProperty = new ConfigurationProperty("assemblyName", typeof(string), null, ConfigurationPropertyOptions.IsRequired);
14 private static readonly ConfigurationProperty supportedFrameworksProperty = new ConfigurationProperty("", typeof(SupportedFrameworkElementCollection), null, ConfigurationPropertyOptions.IsDefaultCollection);
15
16 /// <summary>
17 /// Creates a new instance of the <see cref="HostSection"/> class.
18 /// </summary>
19 public HostSection()
20 {
21 }
22
23 /// <summary>
24 /// Gets the name of the assembly that contians the <see cref="BootstrapperApplication"/> child class.
25 /// </summary>
26 /// <remarks>
27 /// The assembly specified by this name must contain the <see cref="BootstrapperApplicationFactoryAttribute"/> to identify
28 /// the type of the <see cref="BootstrapperApplication"/> child class.
29 /// </remarks>
30 [ConfigurationProperty("assemblyName", IsRequired = true)]
31 public string AssemblyName
32 {
33 get { return (string)base[assemblyNameProperty]; }
34 set { base[assemblyNameProperty] = value; }
35 }
36
37 /// <summary>
38 /// Gets the <see cref="SupportedFrameworkElementCollection"/> of supported frameworks for the host configuration.
39 /// </summary>
40 [ConfigurationProperty("", IsDefaultCollection = true)]
41 [ConfigurationCollection(typeof(SupportedFrameworkElement))]
42 public SupportedFrameworkElementCollection SupportedFrameworks
43 {
44 get { return (SupportedFrameworkElementCollection)base[supportedFrameworksProperty]; }
45 }
46 }
47}
diff --git a/src/WixToolset.Mba.Core/SupportedFrameworkElement.cs b/src/WixToolset.Mba.Core/SupportedFrameworkElement.cs
deleted file mode 100644
index 7eae8bbf..00000000
--- a/src/WixToolset.Mba.Core/SupportedFrameworkElement.cs
+++ /dev/null
@@ -1,47 +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
3namespace WixToolset.Mba.Core
4{
5 using System;
6 using System.Configuration;
7
8 /// <summary>
9 /// Handler for the supportedFramework configuration section.
10 /// </summary>
11 public sealed class SupportedFrameworkElement : ConfigurationElement
12 {
13 private static readonly ConfigurationProperty versionProperty = new ConfigurationProperty("version", typeof(string), null, ConfigurationPropertyOptions.IsRequired);
14 private static readonly ConfigurationProperty runtimeVersionProperty = new ConfigurationProperty("runtimeVersion", typeof(string));
15
16 /// <summary>
17 /// Creates a new instance of the <see cref="SupportedFrameworkElement"/> class.
18 /// </summary>
19 public SupportedFrameworkElement()
20 {
21 }
22
23 /// <summary>
24 /// Gets the version of the supported framework.
25 /// </summary>
26 /// <remarks>
27 /// The assembly specified by this name must contain a value matching the NETFX version registry key under
28 /// "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP".
29 /// </remarks>
30 [ConfigurationProperty("version", IsRequired = true)]
31 public string Version
32 {
33 get { return (string)base[versionProperty]; }
34 set { base[versionProperty] = value; }
35 }
36
37 /// <summary>
38 /// Gets the runtime version required by this supported framework.
39 /// </summary>
40 [ConfigurationProperty("runtimeVersion", IsRequired = false)]
41 public string RuntimeVersion
42 {
43 get { return (string)base[runtimeVersionProperty]; }
44 set { base[runtimeVersionProperty] = value; }
45 }
46 }
47}
diff --git a/src/WixToolset.Mba.Core/SupportedFrameworkElementCollection.cs b/src/WixToolset.Mba.Core/SupportedFrameworkElementCollection.cs
deleted file mode 100644
index 88a9b4dd..00000000
--- a/src/WixToolset.Mba.Core/SupportedFrameworkElementCollection.cs
+++ /dev/null
@@ -1,36 +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
3namespace WixToolset.Mba.Core
4{
5 using System;
6 using System.Configuration;
7 using System.Diagnostics.CodeAnalysis;
8
9 /// <summary>
10 /// Handler for the supportedFramework collection.
11 /// </summary>
12 [SuppressMessage("Microsoft.Design", "CA1010:CollectionsShouldImplementGenericInterface")]
13 [ConfigurationCollection(typeof(SupportedFrameworkElement), AddItemName = "supportedFramework", CollectionType = ConfigurationElementCollectionType.BasicMap)]
14 public sealed class SupportedFrameworkElementCollection : ConfigurationElementCollection
15 {
16 public override ConfigurationElementCollectionType CollectionType
17 {
18 get { return ConfigurationElementCollectionType.BasicMap; }
19 }
20
21 protected override string ElementName
22 {
23 get { return "supportedFramework"; }
24 }
25
26 protected override ConfigurationElement CreateNewElement()
27 {
28 return new SupportedFrameworkElement();
29 }
30
31 protected override object GetElementKey(ConfigurationElement element)
32 {
33 return (element as SupportedFrameworkElement).Version;
34 }
35 }
36}
diff --git a/src/WixToolset.Mba.Core/WixToolset.Mba.Core.config b/src/WixToolset.Mba.Core/WixToolset.Mba.Core.config
deleted file mode 100644
index 81b49347..00000000
--- a/src/WixToolset.Mba.Core/WixToolset.Mba.Core.config
+++ /dev/null
@@ -1,26 +0,0 @@
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
5<configuration>
6 <configSections>
7 <sectionGroup name="wix.bootstrapper" type="WixToolset.Mba.Core.BootstrapperSectionGroup, WixToolset.Mba.Core">
8 <section name="host" type="WixToolset.Mba.Core.HostSection, WixToolset.Mba.Core" />
9 </sectionGroup>
10 </configSections>
11 <startup useLegacyV2RuntimeActivationPolicy="true">
12 <supportedRuntime version="v4.0" />
13 <supportedRuntime version="v2.0.50727" />
14 </startup>
15 <wix.bootstrapper>
16 <!-- Example only. Use only if the startup/supportedRuntime above cannot discern supported frameworks. -->
17 <!--
18 <supportedFramework version="v4\Client" />
19 <supportedFramework version="v3.5" />
20 <supportedFramework version="v3.0" />
21 -->
22
23 <!-- Example only. Replace the host/@assemblyName attribute with assembly that implements IBootstrapperApplicationFactory. -->
24 <host assemblyName="AssemblyWithClassThatInheritsFromBootstrapperApplicationFactory" />
25 </wix.bootstrapper>
26</configuration>
diff --git a/src/WixToolset.Mba.Core/WixToolset.Mba.Core.csproj b/src/WixToolset.Mba.Core/WixToolset.Mba.Core.csproj
index 4b14a545..e88498ac 100644
--- a/src/WixToolset.Mba.Core/WixToolset.Mba.Core.csproj
+++ b/src/WixToolset.Mba.Core/WixToolset.Mba.Core.csproj
@@ -10,7 +10,7 @@
10 <RootNamespace>WixToolset.Mba.Core</RootNamespace> 10 <RootNamespace>WixToolset.Mba.Core</RootNamespace>
11 <NoWarn>0693;1591</NoWarn> 11 <NoWarn>0693;1591</NoWarn>
12 <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> 12 <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
13 <Description>Managed Bootstrapper Application entry point</Description> 13 <Description>Managed Bootstrapper Application Core</Description>
14 </PropertyGroup> 14 </PropertyGroup>
15 <PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> 15 <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
16 <DebugSymbols>true</DebugSymbols> 16 <DebugSymbols>true</DebugSymbols>
@@ -27,15 +27,11 @@
27 <Compile Include="BaseBootstrapperApplicationFactory.cs" /> 27 <Compile Include="BaseBootstrapperApplicationFactory.cs" />
28 <Compile Include="BootstrapperApplication.cs" /> 28 <Compile Include="BootstrapperApplication.cs" />
29 <Compile Include="BootstrapperApplicationData.cs" /> 29 <Compile Include="BootstrapperApplicationData.cs" />
30 <Compile Include="BootstrapperApplicationFactory.cs" />
31 <Compile Include="BootstrapperApplicationFactoryAttribute.cs" /> 30 <Compile Include="BootstrapperApplicationFactoryAttribute.cs" />
32 <Compile Include="BootstrapperCommand.cs" /> 31 <Compile Include="BootstrapperCommand.cs" />
33 <Compile Include="BootstrapperSectionGroup.cs" />
34 <Compile Include="BundleInfo.cs" /> 32 <Compile Include="BundleInfo.cs" />
35 <Compile Include="Engine.cs" /> 33 <Compile Include="Engine.cs" />
36 <Compile Include="EventArgs.cs" /> 34 <Compile Include="EventArgs.cs" />
37 <Compile Include="Exceptions.cs" />
38 <Compile Include="HostSection.cs" />
39 <Compile Include="IBootstrapperApplication.cs" /> 35 <Compile Include="IBootstrapperApplication.cs" />
40 <Compile Include="IBootstrapperApplicationData.cs" /> 36 <Compile Include="IBootstrapperApplicationData.cs" />
41 <Compile Include="IBootstrapperApplicationFactory.cs" /> 37 <Compile Include="IBootstrapperApplicationFactory.cs" />
@@ -49,13 +45,6 @@
49 <Compile Include="NativeMethods.cs" /> 45 <Compile Include="NativeMethods.cs" />
50 <Compile Include="PackageInfo.cs" /> 46 <Compile Include="PackageInfo.cs" />
51 <Compile Include="Properties\AssemblyInfo.cs" /> 47 <Compile Include="Properties\AssemblyInfo.cs" />
52 <Compile Include="SupportedFrameworkElementCollection.cs" />
53 <Compile Include="SupportedFrameworkElement.cs" />
54 </ItemGroup>
55 <ItemGroup>
56 <Content Include="WixToolset.Mba.Core.config">
57 <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
58 </Content>
59 </ItemGroup> 48 </ItemGroup>
60 <ItemGroup> 49 <ItemGroup>
61 <None Include="packages.config" /> 50 <None Include="packages.config" />
@@ -66,33 +55,9 @@
66 <Reference Include="System.Data" /> 55 <Reference Include="System.Data" />
67 <Reference Include="System.Xml" /> 56 <Reference Include="System.Xml" />
68 </ItemGroup> 57 </ItemGroup>
69 <ItemGroup>
70 <HeaderPath Include="$(BaseOutputPath)$(Configuration)\$(AssemblyName).h">
71 <Visible>False</Visible>
72 </HeaderPath>
73 </ItemGroup>
74 58
75 <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> 59 <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
76 60
77 <Target Name="GenerateIdentityHeader" AfterTargets="Build" Inputs="$(TargetPath)" Outputs="@(HeaderPath)">
78 <GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
79 <Output TaskParameter="Assemblies" ItemName="AssemblyIdentity" />
80 </GetAssemblyIdentity>
81 <ItemGroup>
82 <Line Include="#define MBA_ASSEMBLY_FULL_NAME L&quot;%(AssemblyIdentity.Identity)&quot;" />
83 <Line Include="#define MBA_ASSEMBLY_NAME L&quot;%(AssemblyIdentity.Name)&quot;" />
84 <Line Include="#define MBA_ASSEMBLY_VERSION L&quot;%(AssemblyIdentity.Version)&quot;" />
85 <Line Include="#define MBA_ASSEMBLY_CULTURE L&quot;%(AssemblyIdentity.Culture)&quot;" Condition="'%(AssemblyIdentity.Culture)'!=''" />
86 <Line Include="#define MBA_ASSEMBLY_CULTURE L&quot;neutral&quot;" Condition="'%(AssemblyIdentity.Culture)'==''" />
87 <Line Include="#define MBA_ASSEMBLY_PUBLICKEYTOKEN L&quot;%(AssemblyIdentity.PublicKeyToken)&quot;" />
88 </ItemGroup>
89 <Message Importance="normal" Text="Generating identity definitions into @(HeaderPath->'%(FullPath)')" />
90 <WriteLinesToFile File="@(HeaderPath)" Lines="@(Line)" Overwrite="True" />
91 <ItemGroup>
92 <FileWrites Include="@(HeaderPath)" />
93 </ItemGroup>
94 </Target>
95
96 <Target Name="Pack" DependsOnTargets="GetBuildVersion"> 61 <Target Name="Pack" DependsOnTargets="GetBuildVersion">
97 <Exec Command='nuget pack $(AssemblyName).nuspec -OutputDirectory "$(BaseOutputPath)$(Configuration)" -Properties Configuration=$(Configuration);Id=$(AssemblyName);Version="$(BuildVersionSimple)";Authors="$(Authors)";Copyright="$(Copyright)";Description="$(Description)";Title="$(Title)"' /> 62 <Exec Command='nuget pack $(AssemblyName).nuspec -OutputDirectory "$(BaseOutputPath)$(Configuration)" -Properties Configuration=$(Configuration);Id=$(AssemblyName);Version="$(BuildVersionSimple)";Authors="$(Authors)";Copyright="$(Copyright)";Description="$(Description)";Title="$(Title)"' />
98 </Target> 63 </Target>
diff --git a/src/WixToolset.Mba.Core/WixToolset.Mba.Core.nuspec b/src/WixToolset.Mba.Core/WixToolset.Mba.Core.nuspec
index bbac204f..d773bcf9 100644
--- a/src/WixToolset.Mba.Core/WixToolset.Mba.Core.nuspec
+++ b/src/WixToolset.Mba.Core/WixToolset.Mba.Core.nuspec
@@ -14,10 +14,8 @@
14 </metadata> 14 </metadata>
15 15
16 <files> 16 <files>
17 <file src="..\..\build\$configuration$\$id$.config" target="samples" />
18 <file src="build\net20\$id$.props" target="build\net20" /> 17 <file src="build\net20\$id$.props" target="build\net20" />
19 <file src="..\..\build\$configuration$\v141_xp\x86\mbanative.dll" target="build\net20\x86" /> 18 <file src="..\..\build\$configuration$\v141_xp\x86\mbanative.dll" target="build\net20\x86" />
20 <file src="..\..\build\$configuration$\$id$.h" target="build\native\include" />
21 <file src="..\..\build\$configuration$\$id$.dll" target="lib\net20" /> 19 <file src="..\..\build\$configuration$\$id$.dll" target="lib\net20" />
22 </files> 20 </files>
23</package> 21</package>