aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2021-04-22 16:58:03 -0700
committerRob Mensching <rob@firegiant.com>2021-04-29 16:36:05 -0700
commit9c2aed97299fb96aeee3f1471ce40225437aaecf (patch)
treefb871916c7878eecbcdf866d7d4b2fea5c0401c9
parentb6c44ffcf2ef7a706598fe218523ec377e96cc47 (diff)
downloadwix-9c2aed97299fb96aeee3f1471ce40225437aaecf.tar.gz
wix-9c2aed97299fb96aeee3f1471ce40225437aaecf.tar.bz2
wix-9c2aed97299fb96aeee3f1471ce40225437aaecf.zip
Integrate new build scripts with signing support
-rw-r--r--.gitignore43
-rw-r--r--appveyor.cmd12
-rw-r--r--appveyor.yml2
-rw-r--r--nuget.config3
-rw-r--r--signing.json13
-rw-r--r--src/Directory.Build.props4
-rw-r--r--src/Directory.Build.targets87
-rw-r--r--src/Directory.Packages.props20
-rw-r--r--src/Directory.csproj.props13
-rw-r--r--src/Directory.vcxproj.props118
-rw-r--r--src/NativeMultiTargeting.Build.props10
-rw-r--r--src/engine/container.cpp4
-rw-r--r--src/engine/container.h2
-rw-r--r--src/stub/stub.nuspec25
-rw-r--r--src/stub/stub.vcxproj8
-rw-r--r--src/wix.snkbin0 -> 596 bytes
16 files changed, 307 insertions, 57 deletions
diff --git a/.gitignore b/.gitignore
index 3e8a1553..1ee53850 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,6 +13,9 @@
13# User-specific files (MonoDevelop/Xamarin Studio) 13# User-specific files (MonoDevelop/Xamarin Studio)
14*.userprefs 14*.userprefs
15 15
16# Mono auto generated files
17mono_crash.*
18
16# Build results 19# Build results
17[Dd]ebug/ 20[Dd]ebug/
18[Dd]ebugPublic/ 21[Dd]ebugPublic/
@@ -20,12 +23,14 @@
20[Rr]eleases/ 23[Rr]eleases/
21x64/ 24x64/
22x86/ 25x86/
26[Ww][Ii][Nn]32/
23[Aa][Rr][Mm]/ 27[Aa][Rr][Mm]/
24[Aa][Rr][Mm]64/ 28[Aa][Rr][Mm]64/
25bld/ 29bld/
26[Bb]in/ 30[Bb]in/
27[Oo]bj/ 31[Oo]bj/
28[Ll]og/ 32[Ll]og/
33[Ll]ogs/
29 34
30# Visual Studio 2015/2017 cache/options directory 35# Visual Studio 2015/2017 cache/options directory
31.vs/ 36.vs/
@@ -39,9 +44,10 @@ Generated\ Files/
39[Tt]est[Rr]esult*/ 44[Tt]est[Rr]esult*/
40[Bb]uild[Ll]og.* 45[Bb]uild[Ll]og.*
41 46
42# NUNIT 47# NUnit
43*.VisualState.xml 48*.VisualState.xml
44TestResult.xml 49TestResult.xml
50nunit-*.xml
45 51
46# Build Results of an ATL Project 52# Build Results of an ATL Project
47[Dd]ebugPS/ 53[Dd]ebugPS/
@@ -56,6 +62,9 @@ project.lock.json
56project.fragment.lock.json 62project.fragment.lock.json
57artifacts/ 63artifacts/
58 64
65# ASP.NET Scaffolding
66ScaffoldingReadMe.txt
67
59# StyleCop 68# StyleCop
60StyleCopReport.xml 69StyleCopReport.xml
61 70
@@ -122,9 +131,6 @@ _ReSharper*/
122*.[Rr]e[Ss]harper 131*.[Rr]e[Ss]harper
123*.DotSettings.user 132*.DotSettings.user
124 133
125# JustCode is a .NET coding add-in
126.JustCode
127
128# TeamCity is a build add-in 134# TeamCity is a build add-in
129_TeamCity* 135_TeamCity*
130 136
@@ -135,6 +141,11 @@ _TeamCity*
135.axoCover/* 141.axoCover/*
136!.axoCover/settings.json 142!.axoCover/settings.json
137 143
144# Coverlet is a free, cross platform Code Coverage Tool
145coverage*.json
146coverage*.xml
147coverage*.info
148
138# Visual Studio code coverage results 149# Visual Studio code coverage results
139*.coverage 150*.coverage
140*.coveragexml 151*.coveragexml
@@ -182,6 +193,8 @@ PublishScripts/
182 193
183# NuGet Packages 194# NuGet Packages
184*.nupkg 195*.nupkg
196# NuGet Symbol Packages
197*.snupkg
185# The packages folder can be ignored because of Package Restore 198# The packages folder can be ignored because of Package Restore
186**/[Pp]ackages/* 199**/[Pp]ackages/*
187# except build/, which is used as an MSBuild target. 200# except build/, which is used as an MSBuild target.
@@ -206,6 +219,8 @@ BundleArtifacts/
206Package.StoreAssociation.xml 219Package.StoreAssociation.xml
207_pkginfo.txt 220_pkginfo.txt
208*.appx 221*.appx
222*.appxbundle
223*.appxupload
209 224
210# Visual Studio cache files 225# Visual Studio cache files
211# files ending in .cache can be ignored 226# files ending in .cache can be ignored
@@ -231,8 +246,6 @@ orleans.codegen.cs
231# Since there are multiple workflows, uncomment next line to ignore bower_components 246# Since there are multiple workflows, uncomment next line to ignore bower_components
232# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 247# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
233#bower_components/ 248#bower_components/
234# ASP.NET Core default setup: bower directory is configured as wwwroot/lib/ and bower restore is true
235**/wwwroot/lib/
236 249
237# RIA/Silverlight projects 250# RIA/Silverlight projects
238Generated_Code/ 251Generated_Code/
@@ -257,6 +270,9 @@ ServiceFabricBackup/
257*.bim.layout 270*.bim.layout
258*.bim_*.settings 271*.bim_*.settings
259*.rptproj.rsuser 272*.rptproj.rsuser
273*- [Bb]ackup.rdl
274*- [Bb]ackup ([0-9]).rdl
275*- [Bb]ackup ([0-9][0-9]).rdl
260 276
261# Microsoft Fakes 277# Microsoft Fakes
262FakesAssemblies/ 278FakesAssemblies/
@@ -292,10 +308,6 @@ paket-files/
292# FAKE - F# Make 308# FAKE - F# Make
293.fake/ 309.fake/
294 310
295# JetBrains Rider
296.idea/
297*.sln.iml
298
299# CodeRush personal settings 311# CodeRush personal settings
300.cr/personal 312.cr/personal
301 313
@@ -337,5 +349,14 @@ ASALocalRun/
337# Local History for Visual Studio 349# Local History for Visual Studio
338.localhistory/ 350.localhistory/
339 351
340# BeatPulse healthcheck temp database 352# BeatPulse healthcheck temp database
341healthchecksdb 353healthchecksdb
354
355# Backup folder for Package Reference Convert tool in Visual Studio 2017
356MigrationBackup/
357
358# Ionide (cross platform F# VS Code tools) working folder
359.ionide/
360
361# Fody - auto-generated XML schema
362FodyWeavers.xsd
diff --git a/appveyor.cmd b/appveyor.cmd
index 4f18fbee..a35e10d5 100644
--- a/appveyor.cmd
+++ b/appveyor.cmd
@@ -1,15 +1,17 @@
1@setlocal 1@setlocal
2@pushd %~dp0 2@pushd %~dp0
3@set _C=Release
4@if /i "%1"=="debug" set _C=Debug
3 5
4nuget restore || exit /b 6nuget restore || exit /b
5 7
6msbuild -t:Test -p:Configuration=Release src\test\BurnUnitTest || exit /b 8msbuild -t:Test -p:Configuration=%_C% src\test\BurnUnitTest || exit /b
7 9
8msbuild -p:Configuration=Release;Platform=x86 || exit /b 10msbuild -p:Configuration=%_C%;Platform=x86 || exit /b
9msbuild -p:Configuration=Release;Platform=x64 || exit /b 11msbuild -p:Configuration=%_C%;Platform=x64 || exit /b
10msbuild -p:Configuration=Release;Platform=arm64 || exit /b 12msbuild -p:Configuration=%_C%;Platform=arm64 || exit /b
11 13
12msbuild -p:Configuration=Release -t:Pack src\stub\stub.vcxproj || exit /b 14msbuild -p:Configuration=%_C% -t:PackNative src\stub\stub.vcxproj || exit /b
13 15
14@popd 16@popd
15@endlocal \ No newline at end of file 17@endlocal \ No newline at end of file
diff --git a/appveyor.yml b/appveyor.yml
index e4d25586..364569cf 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -35,6 +35,8 @@ skip_tags: true
35artifacts: 35artifacts:
36- path: build\Release\**\*.nupkg 36- path: build\Release\**\*.nupkg
37 name: nuget 37 name: nuget
38- path: build\Release\**\*.snupkg
39 name: snupkg
38 40
39notifications: 41notifications:
40- provider: Slack 42- provider: Slack
diff --git a/nuget.config b/nuget.config
index 405367b4..237c522e 100644
--- a/nuget.config
+++ b/nuget.config
@@ -4,6 +4,7 @@
4 <clear /> 4 <clear />
5 <add key="wixbuildtools" value="https://ci.appveyor.com/nuget/wixbuildtools" /> 5 <add key="wixbuildtools" value="https://ci.appveyor.com/nuget/wixbuildtools" />
6 <add key="wixtoolset-dutil" value="https://ci.appveyor.com/nuget/wixtoolset-dutil" /> 6 <add key="wixtoolset-dutil" value="https://ci.appveyor.com/nuget/wixtoolset-dutil" />
7 <add key="wixtoolset-balutil" value="https://ci.appveyor.com/nuget/wixtoolset-balutil" />
7 <add key="api.nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> 8 <add key="api.nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
8 </packageSources> 9 </packageSources>
9</configuration> \ No newline at end of file 10</configuration>
diff --git a/signing.json b/signing.json
new file mode 100644
index 00000000..fe1c8c9b
--- /dev/null
+++ b/signing.json
@@ -0,0 +1,13 @@
1{
2 "SignClient": {
3 "AzureAd": {
4 "AADInstance": "https://login.microsoftonline.com/",
5 "ClientId": "c248d68a-ba6f-4aa9-8a68-71fe872063f8",
6 "TenantId": "16076fdc-fcc1-4a15-b1ca-32c9a255900e"
7 },
8 "Service": {
9 "Url": "https://codesign.dotnetfoundation.org/",
10 "ResourceId": "https://SignService/3c30251f-36f3-490b-a955-520addb85001"
11 }
12 }
13}
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index a22f4470..fb34d54e 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -8,7 +8,6 @@
8 <PropertyGroup> 8 <PropertyGroup>
9 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 9 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
10 <EnableSourceLink Condition=" '$(NCrunch)' == '1' ">false</EnableSourceLink> 10 <EnableSourceLink Condition=" '$(NCrunch)' == '1' ">false</EnableSourceLink>
11 <MSBuildWarningsAsMessages>MSB3246</MSBuildWarningsAsMessages>
12 11
13 <ProjectName Condition=" '$(ProjectName)' == '' ">$(MSBuildProjectName)</ProjectName> 12 <ProjectName Condition=" '$(ProjectName)' == '' ">$(MSBuildProjectName)</ProjectName>
14 <BaseOutputPath>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\build\))</BaseOutputPath> 13 <BaseOutputPath>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\build\))</BaseOutputPath>
@@ -22,7 +21,6 @@
22 <Product>WiX Toolset</Product> 21 <Product>WiX Toolset</Product>
23 </PropertyGroup> 22 </PropertyGroup>
24 23
25 <Import Project="Cpp.Build.props" Condition=" Exists('Cpp.Build.props') And '$(MSBuildProjectExtension)'=='.vcxproj' " /> 24 <Import Project="Directory$(MSBuildProjectExtension).props" Condition=" Exists('Directory$(MSBuildProjectExtension).props') " />
26 <Import Project="Wix.Build.props" Condition=" Exists('Wix.Build.props') And '$(MSBuildProjectExtension)'=='.wixproj' " />
27 <Import Project="Custom.Build.props" Condition=" Exists('Custom.Build.props') " /> 25 <Import Project="Custom.Build.props" Condition=" Exists('Custom.Build.props') " />
28</Project> 26</Project>
diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets
index dac7452a..44701fb6 100644
--- a/src/Directory.Build.targets
+++ b/src/Directory.Build.targets
@@ -4,45 +4,70 @@
4 Do NOT modify this file. Update the canonical version in Home\repo-template\src\Directory.Build.targets 4 Do NOT modify this file. Update the canonical version in Home\repo-template\src\Directory.Build.targets
5 then update all of the repos. 5 then update all of the repos.
6--> 6-->
7<!--
8 Replace PackageReferences with ProjectReferences when the projects can be found in .sln.
9 See the original here: https://github.com/dotnet/sdk/issues/1151#issuecomment-385133284
10-->
11<Project> 7<Project>
12 <PropertyGroup> 8 <PropertyGroup>
13 <ReplacePackageReferences>true</ReplacePackageReferences> 9 <SigningToolFolder>$(BaseOutputPath)obj\.tools</SigningToolFolder>
14 <TheSolutionPath Condition=" '$(NCrunch)'=='' ">$(SolutionPath)</TheSolutionPath> 10 <SigningToolExe>$(SigningToolFolder)\SignClient.exe</SigningToolExe>
15 <TheSolutionPath Condition=" '$(NCrunch)'=='1' ">$(NCrunchOriginalSolutionPath)</TheSolutionPath> 11 <SigningFilelist>$(SigningToolFolder)\empty-filelist.txt</SigningFilelist>
12 <SigningConfiguration>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), signing.json))\signing.json</SigningConfiguration>
13 </PropertyGroup>
14
15 <PropertyGroup>
16 <CreateDocumentation Condition=" '$(CreateDocumentationFile)'!='true' ">false</CreateDocumentation>
17 <DocumentationFile Condition=" '$(CreateDocumentationFile)'=='true' ">$(OutputPath)\$(AssemblyName).xml</DocumentationFile>
16 </PropertyGroup> 18 </PropertyGroup>
17 19
18 <Choose> 20 <Target Name="SetNuspecProperties" DependsOnTargets="InitializeSourceControlInformation" AfterTargets="GetBuildVersion"
19 <When Condition="$(ReplacePackageReferences) AND '$(TheSolutionPath)' != '' AND '$(TheSolutionPath)' != '*undefined*' AND Exists('$(TheSolutionPath)')"> 21 Condition=" Exists('$(MSBuildProjectName).nuspec') ">
22 <PropertyGroup>
23 <ProjectUrl Condition=" '$(ProjectUrl)'=='' and '$(PrivateRepositoryUrl)'!='' ">$(PrivateRepositoryUrl.Replace('.git',''))</ProjectUrl>
24
25 <NuspecFile>$(MSBuildProjectName).nuspec</NuspecFile>
26 <NuspecBasePath Condition=" '$(NuspecBasePath)'=='' ">$(MSBuildProjectDirectory)</NuspecBasePath>
27 <NuspecProperties>$(NuspecProperties);Id=$(PackageId);Authors="$(Authors)";Configuration=$(Configuration);Copyright="$(Copyright)";Description="$(Description)";Title="$(Title)"</NuspecProperties>
28 <NuspecProperties>$(NuspecProperties);Version=$(NPMPackageVersion);RepositoryCommit=$(SourceRevisionId);RepositoryType=$(RepositoryType);RepositoryUrl=$(PrivateRepositoryUrl);ProjectFolder=$(MSBuildProjectDirectory)\;ProjectUrl=$(ProjectUrl)</NuspecProperties>
29 <PublishRepositoryUrl>true</PublishRepositoryUrl>
30 <SymbolPackageFormat>snupkg</SymbolPackageFormat>
31 </PropertyGroup>
32 </Target>
33
34 <Target Name="PackNative" DependsOnTargets="GetBuildVersion;SetNuspecProperties"
35 Condition=" Exists('$(MSBuildProjectName).nuspec') ">
36
37 <Exec Command='nuget pack $(NuspecFile) -OutputDirectory "$(BaseOutputPath)$(Configuration)" -BasePath "$(NuspecBasePath)" -Properties $(NuspecProperties)'
38 WorkingDirectory="$(MSBuildProjectDirectory)" />
39
40 <ItemGroup>
41 <NuGetPackOutput Include="$(BaseOutputPath)$(Configuration)\**\$(PackageId)*.nupkg" />
42 </ItemGroup>
43 </Target>
44
45 <Target Name="_GetSignClient"
46 Condition=" !Exists('$(SigningToolExe)') ">
47
48 <WriteLinesToFile File='$(SigningFilelist)' Lines='do-not-sign-files-in-nupkg' Overwrite='true' />
20 49
21 <PropertyGroup> 50 <Exec Command='dotnet.exe tool install --tool-path "$(SigningToolFolder)" SignClient' />
22 <SolutionFileContent>$([System.IO.File]::ReadAllText($(TheSolutionPath)))</SolutionFileContent> 51 </Target>
23 <SmartSolutionDir>$([System.IO.Path]::GetDirectoryName( $(TheSolutionPath) ))</SmartSolutionDir>
24 <RegexPattern>(?&lt;="[PackageName]", ")(.*)(?=", ")</RegexPattern>
25 </PropertyGroup>
26 52
27 <ItemGroup> 53 <Target Name="SignOutput" DependsOnTargets="_GetSignClient" AfterTargets="AfterBuild"
28 <!-- Keep the identity of the PackageReference --> 54 Condition=" '$(SigningUser)'!='' and '$(SignOutput)'!='false' and
29 <SmartPackageReference Include="@(PackageReference)"> 55 ('$(MSBuildProjectExtension)'=='.csproj' or ('$(MSBuildProjectExtension)'=='.vcxproj' and '$(ConfigurationType)'!='StaticLibrary'))">
30 <PackageName>%(Identity)</PackageName>
31 <InSolution>$(SolutionFileContent.Contains('\%(Identity).csproj'))</InSolution>
32 </SmartPackageReference>
33 56
34 <!-- Filter them by mapping them to another ItemGroup using the WithMetadataValue item function --> 57 <Exec Command='"$(SigningToolExe)" sign -i $(TargetPath) -c "$(SigningConfiguration)" -n "WiX Toolset" -d "WiX Toolset" -u https://wixtoolset.org/ -r "$(SigningUser)" -s "$(SigningSecret)"'
35 <PackageInSolution Include="@(SmartPackageReference->WithMetadataValue('InSolution', True))"> 58 WorkingDirectory="$(MSBuildProjectDirectory)" EchoOff="true" />
36 <Pattern>$(RegexPattern.Replace('[PackageName]','%(PackageName)') )</Pattern> 59 </Target>
37 <SmartPath>$([System.Text.RegularExpressions.Regex]::Match('$(SolutionFileContent)', '%(Pattern)'))</SmartPath>
38 </PackageInSolution>
39 60
40 <ProjectReference Include="@(PackageInSolution->'$(SmartSolutionDir)\%(SmartPath)' )"/> 61 <Target Name="SignNupkg" DependsOnTargets="_GetSignClient" AfterTargets="Pack;PackNative"
62 Condition=" '$(SigningUser)'!='' and '@(NuGetPackOutput)'!='' and '$(SignNupkg)'!='false' ">
63 <ItemGroup>
64 <SigningNupkgs Include="@(NuGetPackOutput)" Condition=" '%(Extension)'=='.nupkg' " />
65 </ItemGroup>
41 66
42 <!-- Remove the package references that are now referenced as projects --> 67 <Exec Command='"$(SigningToolExe)" sign -i "@(SigningNupkgs->&apos;%(Identity)&apos;)" -c "$(SigningConfiguration)" -f "$(SigningFilelist)" -n "WiX Toolset" -d "WiX Toolset" -u https://wixtoolset.org/ -r "$(SigningUser)" -s "$(SigningSecret)"'
43 <PackageReference Remove="@(PackageInSolution->'%(PackageName)' )"/> 68 WorkingDirectory="$(MSBuildProjectDirectory)" EchoOff="true" />
44 </ItemGroup> 69 </Target>
45 70
46 </When> 71 <Import Project="Directory$(MSBuildProjectExtension).targets" Condition=" Exists('Directory$(MSBuildProjectExtension).targets') " />
47 </Choose> 72 <Import Project="Custom.Build.targets" Condition=" Exists('Custom.Build.targets') " />
48</Project> 73</Project>
diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
new file mode 100644
index 00000000..369c51e7
--- /dev/null
+++ b/src/Directory.Packages.props
@@ -0,0 +1,20 @@
1<Project>
2 <ItemGroup>
3 <PackageVersion Include="WixBuildTools.TestSupport" Version="4.0.47" />
4 <PackageVersion Include="WixBuildTools.TestSupport.Native" Version="4.0.47" />
5 <PackageVersion Include="WixToolset.DUtil" Version="4.0.70" targetFramework="native" />
6 <PackageVersion Include="WixToolset.BootstrapperCore.Native" Version="4.0.57" targetFramework="native" />
7 <PackageVersion Include="xunit.abstractions" Version="2.0.3" />
8 <PackageVersion Include="xunit.assert" Version="2.4.1" />
9 <PackageVersion Include="xunit.core" Version="2.4.1" />
10 <PackageVersion Include="xunit.extensibility.core" Version="2.4.1" />
11 <PackageVersion Include="xunit.extensibility.execution" Version="2.4.1" />
12 <PackageVersion Include="xunit.runner.msbuild" Version="2.4.1" />
13 <PackageVersion Include="xunit.runner.visualstudio" Version="2.4.1" />
14
15 <PackageVersion Include="Microsoft.SourceLink.GitHub" Version="1.0.0" />
16 <PackageVersion Include="Nerdbank.GitVersioning" Version="3.3.37" />
17 <PackageVersion Include="WixToolset.Dutil" Version="4.0.70" />
18 <PackageVersion Include="WixToolset.BootstrapperCore.Native" Version="4.0.57" />
19 </ItemGroup>
20</Project>
diff --git a/src/Directory.csproj.props b/src/Directory.csproj.props
new file mode 100644
index 00000000..81d24ad1
--- /dev/null
+++ b/src/Directory.csproj.props
@@ -0,0 +1,13 @@
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 Do NOT modify this file. Update the canonical version in Home\repo-template\src\CSharp.Build.props
4 then update all of the repos.
5-->
6<Project>
7 <PropertyGroup>
8 <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
9 <SignAssembly>true</SignAssembly>
10 <AssemblyOriginatorKeyFile>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)wix.snk))</AssemblyOriginatorKeyFile>
11 <NBGV_EmitThisAssemblyClass>false</NBGV_EmitThisAssemblyClass>
12 </PropertyGroup>
13</Project>
diff --git a/src/Directory.vcxproj.props b/src/Directory.vcxproj.props
new file mode 100644
index 00000000..63d73b36
--- /dev/null
+++ b/src/Directory.vcxproj.props
@@ -0,0 +1,118 @@
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>
5 <PropertyGroup>
6 <Platform Condition=" '$(Platform)' == '' OR '$(Platform)' == 'AnyCPU' ">Win32</Platform>
7 <IntDir>$(BaseIntermediateOutputPath)$(Configuration)\$(Platform)\</IntDir>
8 <OutDir>$(OutputPath)$(Platform)\</OutDir>
9
10 <!-- NBGV properties -->
11 <AssemblyCompany>$(Company)</AssemblyCompany>
12 <AssemblyCopyright>$(Copyright)</AssemblyCopyright>
13
14 <RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>
15 <NuGetTargetMoniker>native,Version=v0.0</NuGetTargetMoniker>
16 </PropertyGroup>
17
18 <PropertyGroup Condition="'$(WindowsTargetPlatformVersion)'=='' AND '$(VisualStudioVersion)'>='15.0'">
19 <WindowsTargetPlatformVersion>$([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '10.0'))</WindowsTargetPlatformVersion>
20 </PropertyGroup>
21
22 <PropertyGroup>
23 <CodeAnalysisRuleSet Condition=" Exists('$(MSBuildThisFileDirectory)CustomizedNativeRecommendedRules.ruleset') ">$(MSBuildThisFileDirectory)CustomizedNativeRecommendedRules.ruleset</CodeAnalysisRuleSet>
24 </PropertyGroup>
25
26 <ItemDefinitionGroup>
27 <ClCompile>
28 <DisableSpecificWarnings>$(DisableSpecificCompilerWarnings)</DisableSpecificWarnings>
29 <WarningLevel>Level4</WarningLevel>
30 <AdditionalIncludeDirectories>$(ProjectDir)inc;$(MSBuildProjectDirectory);$(IntDir);$(SqlCESdkIncludePath);$(ProjectAdditionalIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
31 <PreprocessorDefinitions>WIN32;_WINDOWS;_WIN32_MSI=500;_WIN32_WINNT=0x0600;$(ArmPreprocessorDefinitions);$(UnicodePreprocessorDefinitions);_CRT_STDIO_LEGACY_WIDE_SPECIFIERS;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
32 <PrecompiledHeader>Use</PrecompiledHeader>
33 <PrecompiledHeaderFile>precomp.h</PrecompiledHeaderFile>
34 <CallingConvention Condition="'$(Platform)'=='Win32'">StdCall</CallingConvention>
35 <TreatWarningAsError>true</TreatWarningAsError>
36 <ExceptionHandling>false</ExceptionHandling>
37 <ControlFlowGuard>Guard</ControlFlowGuard>
38 <AdditionalOptions>-YlprecompDefine</AdditionalOptions>
39 <AdditionalOptions Condition=" $(PlatformToolset.StartsWith('v14')) ">/Zc:threadSafeInit- %(AdditionalOptions)</AdditionalOptions>
40 <MultiProcessorCompilation Condition=" $(NUMBER_OF_PROCESSORS) &gt; 4 ">true</MultiProcessorCompilation>
41 </ClCompile>
42 <ResourceCompile>
43 <PreprocessorDefinitions>$(ArmPreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
44 <AdditionalIncludeDirectories>$(ProjectAdditionalResourceIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
45 </ResourceCompile>
46 <Lib>
47 <AdditionalLibraryDirectories>$(OutDir);$(AdditionalMultiTargetLibraryPath);$(ProjectAdditionalLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
48 </Lib>
49 <Link>
50 <SubSystem>$(ProjectSubSystem)</SubSystem>
51 <ModuleDefinitionFile>$(ProjectModuleDefinitionFile)</ModuleDefinitionFile>
52 <NoEntryPoint>$(ResourceOnlyDll)</NoEntryPoint>
53 <GenerateDebugInformation>true</GenerateDebugInformation>
54 <AdditionalDependencies>$(ProjectAdditionalLinkLibraries);advapi32.lib;comdlg32.lib;user32.lib;oleaut32.lib;gdi32.lib;shell32.lib;ole32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
55 <AdditionalLibraryDirectories>$(OutDir);$(AdditionalMultiTargetLibraryPath);$(ArmLibraryDirectories);$(ProjectAdditionalLinkLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
56 <AdditionalOptions Condition=" $(PlatformToolset.StartsWith('v14')) ">/IGNORE:4099 %(AdditionalOptions)</AdditionalOptions>
57 </Link>
58 </ItemDefinitionGroup>
59
60 <ItemDefinitionGroup Condition=" '$(Platform)'=='Win32' and '$(PlatformToolset)'!='v100'">
61 <ClCompile>
62 <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
63 </ClCompile>
64 </ItemDefinitionGroup>
65 <ItemDefinitionGroup Condition=" '$(Platform)'=='arm' ">
66 <ClCompile>
67 <CallingConvention>CDecl</CallingConvention>
68 </ClCompile>
69 </ItemDefinitionGroup>
70 <ItemDefinitionGroup Condition=" '$(ConfigurationType)'=='StaticLibrary' ">
71 <ClCompile>
72 <DebugInformationFormat>OldStyle</DebugInformationFormat>
73 <OmitDefaultLibName>true</OmitDefaultLibName>
74 <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
75 </ClCompile>
76 </ItemDefinitionGroup>
77 <ItemDefinitionGroup Condition=" '$(Configuration)'=='Debug' ">
78 <ClCompile>
79 <Optimization>Disabled</Optimization>
80 <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
81 <PreprocessorDefinitions>_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
82 <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
83 </ClCompile>
84 </ItemDefinitionGroup>
85 <ItemDefinitionGroup Condition=" '$(Configuration)'=='Debug' and '$(CLRSupport)'=='true' ">
86 <ClCompile>
87 <ControlFlowGuard></ControlFlowGuard>
88 <BasicRuntimeChecks></BasicRuntimeChecks>
89 <RuntimeLibrary>MultiThreadedDebugDll</RuntimeLibrary>
90 </ClCompile>
91 </ItemDefinitionGroup>
92 <ItemDefinitionGroup Condition=" '$(Configuration)'=='Release' ">
93 <ClCompile>
94 <Optimization>MinSpace</Optimization>
95 <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
96 <FunctionLevelLinking>true</FunctionLevelLinking>
97 <IntrinsicFunctions>true</IntrinsicFunctions>
98 <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
99 </ClCompile>
100 <Link>
101 <EnableCOMDATFolding>true</EnableCOMDATFolding>
102 <OptimizeReferences>true</OptimizeReferences>
103 </Link>
104 </ItemDefinitionGroup>
105 <ItemDefinitionGroup Condition=" '$(Configuration)'=='Release' and '$(CLRSupport)'=='true' ">
106 <ClCompile>
107 <ControlFlowGuard></ControlFlowGuard>
108 <BasicRuntimeChecks></BasicRuntimeChecks>
109 <RuntimeLibrary>MultiThreadedDll</RuntimeLibrary>
110 </ClCompile>
111 </ItemDefinitionGroup>
112 <ItemDefinitionGroup Condition=" '$(CLRSupport)'=='true' ">
113 <Link>
114 <KeyFile>$(LinkKeyFile)</KeyFile>
115 <DelaySign>$(LinkDelaySign)</DelaySign>
116 </Link>
117 </ItemDefinitionGroup>
118</Project>
diff --git a/src/NativeMultiTargeting.Build.props b/src/NativeMultiTargeting.Build.props
new file mode 100644
index 00000000..1ff46559
--- /dev/null
+++ b/src/NativeMultiTargeting.Build.props
@@ -0,0 +1,10 @@
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>
5 <!-- Overrides the standard Cpp.Build.props to include the PlatformToolset in the output path. -->
6 <PropertyGroup>
7 <IntDir>$(BaseIntermediateOutputPath)$(Configuration)\$(PlatformToolset)\$(PlatformTarget)\</IntDir>
8 <OutDir>$(OutputPath)$(PlatformToolset)\$(PlatformTarget)\</OutDir>
9 </PropertyGroup>
10</Project>
diff --git a/src/engine/container.cpp b/src/engine/container.cpp
index 2db2412c..0cce3131 100644
--- a/src/engine/container.cpp
+++ b/src/engine/container.cpp
@@ -318,6 +318,10 @@ extern "C" HRESULT ContainerStreamToBuffer(
318 case BURN_CONTAINER_TYPE_CABINET: 318 case BURN_CONTAINER_TYPE_CABINET:
319 hr = CabExtractStreamToBuffer(pContext, ppbBuffer, pcbBuffer); 319 hr = CabExtractStreamToBuffer(pContext, ppbBuffer, pcbBuffer);
320 break; 320 break;
321
322 default:
323 *ppbBuffer = NULL;
324 *pcbBuffer = 0;
321 } 325 }
322 326
323//LExit: 327//LExit:
diff --git a/src/engine/container.h b/src/engine/container.h
index 88fe48f1..c2c1c9a8 100644
--- a/src/engine/container.h
+++ b/src/engine/container.h
@@ -161,7 +161,7 @@ HRESULT ContainerOpen(
161 __in_z LPCWSTR wzFilePath 161 __in_z LPCWSTR wzFilePath
162 ); 162 );
163HRESULT ContainerNextStream( 163HRESULT ContainerNextStream(
164 __inout BURN_CONTAINER_CONTEXT* pContext, 164 __in BURN_CONTAINER_CONTEXT* pContext,
165 __inout_z LPWSTR* psczStreamName 165 __inout_z LPWSTR* psczStreamName
166 ); 166 );
167HRESULT ContainerStreamToFile( 167HRESULT ContainerStreamToFile(
diff --git a/src/stub/stub.nuspec b/src/stub/stub.nuspec
new file mode 100644
index 00000000..968feff3
--- /dev/null
+++ b/src/stub/stub.nuspec
@@ -0,0 +1,25 @@
1<?xml version="1.0"?>
2<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
3 <metadata minClientVersion="4.0">
4 <id>$id$</id>
5 <version>$version$</version>
6 <title>$title$</title>
7 <description>$description$</description>
8 <authors>$authors$</authors>
9 <license type="expression">MS-RL</license>
10 <requireLicenseAcceptance>false</requireLicenseAcceptance>
11 <copyright>$copyright$</copyright>
12 <projectUrl>$projectUrl$</projectUrl>
13 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" />
14 </metadata>
15
16 <files>
17 <file src="$projectFolder$$id$.props" target="buildTransitive" />
18 <file src="..\..\build\$configuration$\Win32\burn.exe" target="tools\x86" />
19 <file src="..\..\build\$configuration$\Win32\burn.pdb" target="tools\x86" />
20 <file src="..\..\build\$configuration$\x64\burn.exe" target="tools\x64" />
21 <file src="..\..\build\$configuration$\x64\burn.pdb" target="tools\x64" />
22 <file src="..\..\build\$configuration$\arm64\burn.exe" target="tools\arm64" />
23 <file src="..\..\build\$configuration$\arm64\burn.pdb" target="tools\arm64" />
24 </files>
25</package>
diff --git a/src/stub/stub.vcxproj b/src/stub/stub.vcxproj
index 38710865..97972848 100644
--- a/src/stub/stub.vcxproj
+++ b/src/stub/stub.vcxproj
@@ -46,6 +46,8 @@
46 <!-- NBGV properties --> 46 <!-- NBGV properties -->
47 <AssemblyLanguage>1033</AssemblyLanguage> 47 <AssemblyLanguage>1033</AssemblyLanguage>
48 <AssemblyProduct>Burn</AssemblyProduct> 48 <AssemblyProduct>Burn</AssemblyProduct>
49 <PackageId>WixToolset.Burn</PackageId>
50 <SignOutput>false</SignOutput>
49 </PropertyGroup> 51 </PropertyGroup>
50 52
51 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> 53 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
@@ -101,10 +103,6 @@
101 <None Include="packages.config" /> 103 <None Include="packages.config" />
102 </ItemGroup> 104 </ItemGroup>
103 105
104 <Target Name="Pack" DependsOnTargets="GetBuildVersion">
105 <Exec Command='nuget pack WixToolset.Burn.nuspec -Symbols -BasePath "$(BaseOutputPath)$(Configuration)" -OutputDirectory "$(BaseOutputPath)$(Configuration)" -Properties Id=WixToolset.Burn;Version="$(BuildVersionSimple)";ProjectFolder=$(MSBuildThisFileDirectory);Authors="$(Authors)";Copyright="$(Copyright)";Description="$(Description)"' />
106 </Target>
107
108 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 106 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
109 <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> 107 <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
110 <PropertyGroup> 108 <PropertyGroup>
@@ -119,4 +117,4 @@
119 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets'))" /> 117 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.3.3.37\build\Nerdbank.GitVersioning.targets'))" />
120 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props'))" /> 118 <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.72\build\WixToolset.DUtil.props'))" />
121 </Target> 119 </Target>
122</Project> \ No newline at end of file 120</Project>
diff --git a/src/wix.snk b/src/wix.snk
new file mode 100644
index 00000000..3908a66a
--- /dev/null
+++ b/src/wix.snk
Binary files differ