@joebigelow / wix-1 / commits / 3480ec56

Integrate into latest v4

Sean Hall committed Dec 29, 2018 at 22:18 UTC 3480ec56611d6c8784b7610dcac818133318f675
20 files changed +639 -13
.editorconfig new
+37
@@ -0,0 +1,37 @@
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\.editorconfig
4 +# then update all of the repos.
5 +
6 +root = true
7 +
8 +[*]
9 +charset = utf-8
10 +indent_style = space
11 +indent_size = 4
12 +trim_trailing_whitespace = true
13 +
14 +[*.{cs,vb}]
15 +dotnet_sort_system_directives_first = true
16 +
17 +[*.cs]
18 +csharp_indent_case_contents = true : error
19 +csharp_indent_switch_labels = true : error
20 +csharp_new_line_before_open_brace = all
21 +csharp_prefer_braces = true : error
22 +csharp_style_expression_bodied_methods = when_on_single_line : suggestion
23 +csharp_style_expression_bodied_constructors = when_on_single_line : suggestion
24 +csharp_style_expression_bodied_operators = when_on_single_line : suggestion
25 +csharp_style_expression_bodied_properties = when_on_single_line : suggestion
26 +csharp_style_expression_bodied_indexers = when_on_single_line : suggestion
27 +csharp_style_expression_bodied_accessors = when_on_single_line : suggestion
28 +csharp_style_var_elsewhere = true : suggestion
29 +csharp_style_var_for_built_in_types = true : suggestion
30 +csharp_style_var_when_type_is_apparent = true : suggestion
31 +dotnet_style_qualification_for_event = true : error
32 +dotnet_style_qualification_for_field = true : error
33 +dotnet_style_qualification_for_method = true : error
34 +dotnet_style_qualification_for_property = true : error
35 +
36 +[*.targets]
37 +indent_size = 2
appveyor.cmd new
+11
@@ -0,0 +1,11 @@
1 +@setlocal
2 +@pushd %~dp0
3 +
4 +nuget restore
5 +
6 +msbuild -p:Configuration=Release;Platform=x86
7 +
8 +msbuild -p:Configuration=Release -t:Pack src\stub\stub.vcxproj
9 +
10 +@popd
11 +@endlocal
\ No newline at end of file
appveyor.yml new
+35
@@ -0,0 +1,35 @@
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\appveyor.yml
4 +# then update all of the repos.
5 +
6 +image: Visual Studio 2017
7 +
8 +version: 0.0.0.{build}
9 +configuration: Release
10 +
11 +environment:
12 + DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
13 + DOTNET_CLI_TELEMETRY_OPTOUT: 1
14 + NUGET_XMLDOC_MODE: skip
15 +
16 +build_script:
17 + - appveyor.cmd
18 +
19 +pull_requests:
20 + do_not_increment_build_number: true
21 +
22 +nuget:
23 + disable_publish_on_pr: true
24 +
25 +skip_branch_with_pr: true
26 +skip_tags: true
27 +
28 +artifacts:
29 +- path: build\Release\**\*.nupkg
30 + name: nuget
31 +
32 +notifications:
33 +- provider: Slack
34 + incoming_webhook:
35 + secure: p5xuu+4x2JHfwGDMDe5KcG1k7gZxqYc4jWVwvyNZv5cvkubPD2waJs5yXMAXZNN7Z63/3PWHb7q4KoY/99AjauYa1nZ4c5qYqRPFRBKTHfA=
burn.sln new
+41
@@ -0,0 +1,41 @@
1 +
2 +Microsoft Visual Studio Solution File, Format Version 12.00
3 +# Visual Studio 15
4 +VisualStudioVersion = 15.0.26730.12
5 +MinimumVisualStudioVersion = 15.0.26124.0
6 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "engine", "src\engine\engine.vcxproj", "{8119537D-E1D9-6591-D51A-49768A2F9C37}"
7 +EndProject
8 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stub", "src\stub\stub.vcxproj", "{C38373AA-882F-4F55-B03F-2AAB4BFBE3F1}"
9 +EndProject
10 +Global
11 + GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 + Debug|x64 = Debug|x64
13 + Debug|x86 = Debug|x86
14 + Release|x64 = Release|x64
15 + Release|x86 = Release|x86
16 + EndGlobalSection
17 + GlobalSection(ProjectConfigurationPlatforms) = postSolution
18 + {8119537D-E1D9-6591-D51A-49768A2F9C37}.Debug|x64.ActiveCfg = Debug|x64
19 + {8119537D-E1D9-6591-D51A-49768A2F9C37}.Debug|x64.Build.0 = Debug|x64
20 + {8119537D-E1D9-6591-D51A-49768A2F9C37}.Debug|x86.ActiveCfg = Debug|Win32
21 + {8119537D-E1D9-6591-D51A-49768A2F9C37}.Debug|x86.Build.0 = Debug|Win32
22 + {8119537D-E1D9-6591-D51A-49768A2F9C37}.Release|x64.ActiveCfg = Release|x64
23 + {8119537D-E1D9-6591-D51A-49768A2F9C37}.Release|x64.Build.0 = Release|x64
24 + {8119537D-E1D9-6591-D51A-49768A2F9C37}.Release|x86.ActiveCfg = Release|Win32
25 + {8119537D-E1D9-6591-D51A-49768A2F9C37}.Release|x86.Build.0 = Release|Win32
26 + {C38373AA-882F-4F55-B03F-2AAB4BFBE3F1}.Debug|x64.ActiveCfg = Debug|x64
27 + {C38373AA-882F-4F55-B03F-2AAB4BFBE3F1}.Debug|x64.Build.0 = Debug|x64
28 + {C38373AA-882F-4F55-B03F-2AAB4BFBE3F1}.Debug|x86.ActiveCfg = Debug|Win32
29 + {C38373AA-882F-4F55-B03F-2AAB4BFBE3F1}.Debug|x86.Build.0 = Debug|Win32
30 + {C38373AA-882F-4F55-B03F-2AAB4BFBE3F1}.Release|x64.ActiveCfg = Release|x64
31 + {C38373AA-882F-4F55-B03F-2AAB4BFBE3F1}.Release|x64.Build.0 = Release|x64
32 + {C38373AA-882F-4F55-B03F-2AAB4BFBE3F1}.Release|x86.ActiveCfg = Release|Win32
33 + {C38373AA-882F-4F55-B03F-2AAB4BFBE3F1}.Release|x86.Build.0 = Release|Win32
34 + EndGlobalSection
35 + GlobalSection(SolutionProperties) = preSolution
36 + HideSolutionNode = FALSE
37 + EndGlobalSection
38 + GlobalSection(ExtensibilityGlobals) = postSolution
39 + SolutionGuid = {A35910C5-8A89-473E-9578-E084172DD3C9}
40 + EndGlobalSection
41 +EndGlobal
nuget.config new
+8
@@ -0,0 +1,8 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<configuration>
3 + <packageSources>
4 + <clear />
5 + <add key="wixtoolset-dutil" value="https://ci.appveyor.com/nuget/wixtoolset-dutil" />
6 + <add key="api.nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
7 + </packageSources>
8 +</configuration>
\ No newline at end of file
src/Cpp.Build.props new
+100
@@ -0,0 +1,100 @@
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 + </PropertyGroup>
10 +
11 + <ItemDefinitionGroup>
12 + <ClCompile>
13 + <DisableSpecificWarnings>$(DisableSpecificCompilerWarnings)</DisableSpecificWarnings>
14 + <WarningLevel>Level4</WarningLevel>
15 + <AdditionalIncludeDirectories>$(ProjectDir)inc;$(MSBuildProjectDirectory);$(IntDir);$(SqlCESdkIncludePath);$(ProjectAdditionalIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
16 + <PreprocessorDefinitions>WIN32;_WINDOWS;_WIN32_MSI=500;_WIN32_WINNT=0x0501;$(ArmPreprocessorDefinitions);$(UnicodePreprocessorDefinitions);_CRT_STDIO_LEGACY_WIDE_SPECIFIERS;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
17 + <PrecompiledHeader>Use</PrecompiledHeader>
18 + <PrecompiledHeaderFile>precomp.h</PrecompiledHeaderFile>
19 + <CallingConvention>StdCall</CallingConvention>
20 + <TreatWarningAsError>true</TreatWarningAsError>
21 + <ExceptionHandling>false</ExceptionHandling>
22 + <AdditionalOptions>-YlprecompDefine</AdditionalOptions>
23 + <AdditionalOptions Condition=" $(PlatformToolset.StartsWith('v14')) ">/Zc:threadSafeInit- %(AdditionalOptions)</AdditionalOptions>
24 + <MultiProcessorCompilation Condition=" $(NUMBER_OF_PROCESSORS) &gt; 4 ">true</MultiProcessorCompilation>
25 + </ClCompile>
26 + <ResourceCompile>
27 + <PreprocessorDefinitions>$(ArmPreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
28 + <AdditionalIncludeDirectories>$(ProjectAdditionalResourceIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
29 + </ResourceCompile>
30 + <Lib>
31 + <AdditionalLibraryDirectories>$(OutDir);$(AdditionalMultiTargetLibraryPath);$(ProjectAdditionalLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
32 + </Lib>
33 + <Link>
34 + <SubSystem>$(ProjectSubSystem)</SubSystem>
35 + <ModuleDefinitionFile>$(ProjectModuleDefinitionFile)</ModuleDefinitionFile>
36 + <NoEntryPoint>$(ResourceOnlyDll)</NoEntryPoint>
37 + <GenerateDebugInformation>true</GenerateDebugInformation>
38 + <AdditionalDependencies>$(ProjectAdditionalLinkLibraries);advapi32.lib;comdlg32.lib;user32.lib;oleaut32.lib;gdi32.lib;shell32.lib;ole32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
39 + <AdditionalLibraryDirectories>$(OutDir);$(AdditionalMultiTargetLibraryPath);$(ArmLibraryDirectories);$(ProjectAdditionalLinkLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
40 + <AdditionalOptions Condition=" $(PlatformToolset.StartsWith('v14')) ">/IGNORE:4099 %(AdditionalOptions)</AdditionalOptions>
41 + </Link>
42 + </ItemDefinitionGroup>
43 +
44 + <ItemDefinitionGroup Condition=" '$(Platform)'=='Win32' and '$(PlatformToolset)'!='v100'">
45 + <ClCompile>
46 + <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
47 + </ClCompile>
48 + </ItemDefinitionGroup>
49 + <ItemDefinitionGroup Condition=" '$(Platform)'=='arm' ">
50 + <ClCompile>
51 + <CallingConvention>CDecl</CallingConvention>
52 + </ClCompile>
53 + </ItemDefinitionGroup>
54 + <ItemDefinitionGroup Condition=" '$(ConfigurationType)'=='StaticLibrary' ">
55 + <ClCompile>
56 + <DebugInformationFormat>OldStyle</DebugInformationFormat>
57 + <OmitDefaultLibName>true</OmitDefaultLibName>
58 + <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
59 + </ClCompile>
60 + </ItemDefinitionGroup>
61 + <ItemDefinitionGroup Condition=" '$(Configuration)'=='Debug' ">
62 + <ClCompile>
63 + <Optimization>Disabled</Optimization>
64 + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
65 + <PreprocessorDefinitions>_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
66 + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
67 + </ClCompile>
68 + </ItemDefinitionGroup>
69 + <ItemDefinitionGroup Condition=" '$(Configuration)'=='Debug' and '$(CLRSupport)'=='true' ">
70 + <ClCompile>
71 + <BasicRuntimeChecks></BasicRuntimeChecks>
72 + <RuntimeLibrary>MultiThreadedDebugDll</RuntimeLibrary>
73 + </ClCompile>
74 + </ItemDefinitionGroup>
75 + <ItemDefinitionGroup Condition=" '$(Configuration)'=='Release' ">
76 + <ClCompile>
77 + <Optimization>MinSpace</Optimization>
78 + <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
79 + <FunctionLevelLinking>true</FunctionLevelLinking>
80 + <IntrinsicFunctions>true</IntrinsicFunctions>
81 + <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
82 + </ClCompile>
83 + <Link>
84 + <EnableCOMDATFolding>true</EnableCOMDATFolding>
85 + <OptimizeReferences>true</OptimizeReferences>
86 + </Link>
87 + </ItemDefinitionGroup>
88 + <ItemDefinitionGroup Condition=" '$(Configuration)'=='Release' and '$(CLRSupport)'=='true' ">
89 + <ClCompile>
90 + <BasicRuntimeChecks></BasicRuntimeChecks>
91 + <RuntimeLibrary>MultiThreadedDll</RuntimeLibrary>
92 + </ClCompile>
93 + </ItemDefinitionGroup>
94 + <ItemDefinitionGroup Condition=" '$(CLRSupport)'=='true' ">
95 + <Link>
96 + <KeyFile>$(LinkKeyFile)</KeyFile>
97 + <DelaySign>$(LinkDelaySign)</DelaySign>
98 + </Link>
99 + </ItemDefinitionGroup>
100 +</Project>
src/Directory.Build.props new
+26
@@ -0,0 +1,26 @@
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 + Do NOT modify this file. Update the canonical version in Home\repo-template\src\Directory.Build.props
5 + then update all of the repos.
6 +-->
7 +<Project>
8 + <PropertyGroup>
9 + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
10 + <EnableSourceLink Condition=" '$(NCrunch)' == '1' ">false</EnableSourceLink>
11 +
12 + <ProjectName Condition=" '$(ProjectName)' == '' ">$(MSBuildProjectName)</ProjectName>
13 + <BaseOutputPath>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\build\))</BaseOutputPath>
14 + <BaseIntermediateOutputPath>$(BaseOutputPath)obj\$(ProjectName)\</BaseIntermediateOutputPath>
15 + <OutputPath>$(BaseOutputPath)$(Configuration)\</OutputPath>
16 +
17 + <Authors>WiX Toolset Team</Authors>
18 + <Company>WiX Toolset</Company>
19 + <Copyright>Copyright (c) .NET Foundation and contributors. All rights reserved.</Copyright>
20 + <PackageLicenseExpression>MS-RL</PackageLicenseExpression>
21 + <Product>WiX Toolset</Product>
22 + </PropertyGroup>
23 +
24 + <Import Project="Cpp.Build.props" Condition=" '$(MSBuildProjectExtension)'=='.vcxproj' " />
25 + <Import Project="Custom.Build.props" Condition=" Exists('Custom.Build.props') " />
26 +</Project>
src/Directory.Build.targets new
+48
@@ -0,0 +1,48 @@
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 + Do NOT modify this file. Update the canonical version in Home\repo-template\src\Directory.Build.targets
5 + then update all of the repos.
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>
12 + <PropertyGroup>
13 + <ReplacePackageReferences>true</ReplacePackageReferences>
14 + <TheSolutionPath Condition=" '$(NCrunch)'=='' ">$(SolutionPath)</TheSolutionPath>
15 + <TheSolutionPath Condition=" '$(NCrunch)'=='1' ">$(NCrunchOriginalSolutionPath)</TheSolutionPath>
16 + </PropertyGroup>
17 +
18 + <Choose>
19 + <When Condition="$(ReplacePackageReferences) AND '$(TheSolutionPath)' != '' AND '$(TheSolutionPath)' != '*undefined*' AND Exists('$(TheSolutionPath)')">
20 +
21 + <PropertyGroup>
22 + <SolutionFileContent>$([System.IO.File]::ReadAllText($(TheSolutionPath)))</SolutionFileContent>
23 + <SmartSolutionDir>$([System.IO.Path]::GetDirectoryName( $(TheSolutionPath) ))</SmartSolutionDir>
24 + <RegexPattern>(?&lt;="[PackageName]", ")(.*)(?=", ")</RegexPattern>
25 + </PropertyGroup>
26 +
27 + <ItemGroup>
28 + <!-- Keep the identity of the PackageReference -->
29 + <SmartPackageReference Include="@(PackageReference)">
30 + <PackageName>%(Identity)</PackageName>
31 + <InSolution>$(SolutionFileContent.Contains('\%(Identity).csproj'))</InSolution>
32 + </SmartPackageReference>
33 +
34 + <!-- Filter them by mapping them to another ItemGroup using the WithMetadataValue item function -->
35 + <PackageInSolution Include="@(SmartPackageReference->WithMetadataValue('InSolution', True))">
36 + <Pattern>$(RegexPattern.Replace('[PackageName]','%(PackageName)') )</Pattern>
37 + <SmartPath>$([System.Text.RegularExpressions.Regex]::Match('$(SolutionFileContent)', '%(Pattern)'))</SmartPath>
38 + </PackageInSolution>
39 +
40 + <ProjectReference Include="@(PackageInSolution->'$(SmartSolutionDir)\%(SmartPath)' )"/>
41 +
42 + <!-- Remove the package references that are now referenced as projects -->
43 + <PackageReference Remove="@(PackageInSolution->'%(PackageName)' )"/>
44 + </ItemGroup>
45 +
46 + </When>
47 + </Choose>
48 +</Project>
src/engine/engine.cpp
+1
@@ -144,6 +144,7 @@ extern "C" HRESULT EngineRun(
144 fXmlInitialized = TRUE;
145
146 ovix.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEXW);
147 + #pragma warning(suppress: 4996)
148 if (!::GetVersionExW((LPOSVERSIONINFOW)&ovix))
149 {
150 ExitWithLastError(hr, "Failed to get OS info.");
src/engine/engine.vcxproj new
+174
@@ -0,0 +1,174 @@
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 DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 + <Import Project="..\..\packages\WixToolset.BootstrapperCore.4.0.1\build\WixToolset.BootstrapperCore.props" Condition="Exists('..\..\packages\WixToolset.BootstrapperCore.4.0.1\build\WixToolset.BootstrapperCore.props')" />
6 + <Import Project="..\..\packages\WixToolset.DUtil.4.0.13\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.13\build\WixToolset.DUtil.props')" />
7 +
8 + <ItemGroup Label="ProjectConfigurations">
9 + <ProjectConfiguration Include="Debug|Win32">
10 + <Configuration>Debug</Configuration>
11 + <Platform>Win32</Platform>
12 + </ProjectConfiguration>
13 + <ProjectConfiguration Include="Release|Win32">
14 + <Configuration>Release</Configuration>
15 + <Platform>Win32</Platform>
16 + </ProjectConfiguration>
17 + <ProjectConfiguration Include="Debug|x64">
18 + <Configuration>Debug</Configuration>
19 + <Platform>x64</Platform>
20 + </ProjectConfiguration>
21 + <ProjectConfiguration Include="Release|x64">
22 + <Configuration>Release</Configuration>
23 + <Platform>x64</Platform>
24 + </ProjectConfiguration>
25 + </ItemGroup>
26 +
27 + <PropertyGroup Label="Globals">
28 + <ProjectGuid>{8119537D-E1D9-6591-D51A-49768A2F9C37}</ProjectGuid>
29 + <ConfigurationType>StaticLibrary</ConfigurationType>
30 + <TargetName>engine</TargetName>
31 + <PlatformToolset>v141</PlatformToolset>
32 + <CharacterSet>Unicode</CharacterSet>
33 + <Description>Native component of WixToolset.Burn</Description>
34 + </PropertyGroup>
35 +
36 + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
37 + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
38 +
39 + <ImportGroup Label="ExtensionSettings">
40 + </ImportGroup>
41 +
42 + <ImportGroup Label="Shared">
43 + </ImportGroup>
44 +
45 + <PropertyGroup>
46 + <ProjectAdditionalIncludeDirectories>$(ProjectDir)..\inc</ProjectAdditionalIncludeDirectories>
47 + </PropertyGroup>
48 +
49 + <ItemGroup>
50 + <ClCompile Include="apply.cpp" />
51 + <ClCompile Include="approvedexe.cpp" />
52 + <ClCompile Include="bitsengine.cpp" />
53 + <ClCompile Include="catalog.cpp" />
54 + <ClCompile Include="detect.cpp" />
55 + <ClCompile Include="embedded.cpp" />
56 + <ClCompile Include="EngineForApplication.cpp" />
57 + <ClCompile Include="cabextract.cpp" />
58 + <ClCompile Include="cache.cpp" />
59 + <ClCompile Include="condition.cpp" />
60 + <ClCompile Include="container.cpp" />
61 + <ClCompile Include="core.cpp" />
62 + <ClCompile Include="dependency.cpp" />
63 + <ClCompile Include="elevation.cpp" />
64 + <ClCompile Include="engine.cpp" />
65 + <ClCompile Include="exeengine.cpp" />
66 + <ClCompile Include="logging.cpp" />
67 + <ClCompile Include="manifest.cpp" />
68 + <ClCompile Include="msiengine.cpp" />
69 + <ClCompile Include="mspengine.cpp" />
70 + <ClCompile Include="msuengine.cpp" />
71 + <ClCompile Include="NetFxChainer.cpp" />
72 + <ClCompile Include="package.cpp" />
73 + <ClCompile Include="payload.cpp" />
74 + <ClCompile Include="pipe.cpp" />
75 + <ClCompile Include="plan.cpp" />
76 + <ClCompile Include="platform.cpp" />
77 + <ClCompile Include="precomp.cpp">
78 + <PrecompiledHeader>Create</PrecompiledHeader>
79 + </ClCompile>
80 + <ClCompile Include="pseudobundle.cpp" />
81 + <ClCompile Include="registration.cpp" />
82 + <ClCompile Include="relatedbundle.cpp" />
83 + <ClCompile Include="search.cpp" />
84 + <ClCompile Include="section.cpp" />
85 + <ClCompile Include="splashscreen.cpp" />
86 + <ClCompile Include="uithread.cpp" />
87 + <ClCompile Include="update.cpp" />
88 + <ClCompile Include="userexperience.cpp" />
89 + <ClCompile Include="variable.cpp" />
90 + <ClCompile Include="variant.cpp" />
91 + </ItemGroup>
92 +
93 + <ItemGroup>
94 + <ClInclude Include="..\inc\BootstrapperApplication.h" />
95 + <ClInclude Include="..\inc\BootstrapperEngine.h" />
96 + </ItemGroup>
97 +
98 + <ItemGroup>
99 + <ClInclude Include="apply.h" />
100 + <ClInclude Include="approvedexe.h" />
101 + <ClInclude Include="bitsengine.h" />
102 + <ClInclude Include="cabextract.h" />
103 + <ClInclude Include="cache.h" />
104 + <ClInclude Include="catalog.h" />
105 + <ClInclude Include="condition.h" />
106 + <ClInclude Include="container.h" />
107 + <ClInclude Include="core.h" />
108 + <ClInclude Include="dependency.h" />
109 + <ClInclude Include="detect.h" />
110 + <ClInclude Include="elevation.h" />
111 + <ClInclude Include="embedded.h" />
112 + <ClInclude Include="EngineForApplication.h" />
113 + <ClInclude Include="exeengine.h" />
114 + <ClInclude Include="inc\engine.h" />
115 + <ClInclude Include="logging.h" />
116 + <ClInclude Include="manifest.h" />
117 + <ClInclude Include="msiengine.h" />
118 + <ClInclude Include="mspengine.h" />
119 + <ClInclude Include="msuengine.h" />
120 + <ClInclude Include="netfxchainer.h" />
121 + <ClInclude Include="package.h" />
122 + <ClInclude Include="payload.h" />
123 + <ClInclude Include="pipe.h" />
124 + <ClInclude Include="plan.h" />
125 + <ClInclude Include="platform.h" />
126 + <ClInclude Include="precomp.h" />
127 + <ClInclude Include="pseudobundle.h" />
128 + <ClInclude Include="registration.h" />
129 + <ClInclude Include="relatedbundle.h" />
130 + <ClInclude Include="search.h" />
131 + <ClInclude Include="section.h" />
132 + <ClInclude Include="splashscreen.h" />
133 + <ClInclude Include="uithread.h" />
134 + <ClInclude Include="update.h" />
135 + <ClInclude Include="userexperience.h" />
136 + <ClInclude Include="variable.h" />
137 + <ClInclude Include="variant.h" />
138 + </ItemGroup>
139 +
140 + <ItemGroup>
141 + <None Include="packages.config" />
142 + </ItemGroup>
143 +
144 + <ItemGroup>
145 + <CustomBuild Include="engine.mc">
146 + <Message>Compiling message file...</Message>
147 + <Command>mc.exe -h "$(IntDir)." -r "$(IntDir)." -A -c -z engine.messages "$(InputDir)engine.mc"
148 +rc.exe -fo "$(OutDir)engine.res" "$(IntDir)engine.messages.rc"</Command>
149 + <Outputs>$(IntDir)engine.messages.h;$(OutDir)engine.messages.rc</Outputs>
150 + </CustomBuild>
151 + </ItemGroup>
152 +
153 + <Target Name="SetWixVersion"
154 + DependsOnTargets="GetBuildVersion"
155 + BeforeTargets="ClCompile">
156 + <ItemGroup>
157 + <ClCompile>
158 + <!-- TODO: get rmj and rmm dynamically -->
159 + <PreprocessorDefinitions>rmj=4;rmm=0;rup=$(BuildNumber);szVerMajorMinorBuild="$(BuildVersion)";%(PreprocessorDefinitions)</PreprocessorDefinitions>
160 + </ClCompile>
161 + </ItemGroup>
162 + </Target>
163 +
164 + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
165 + <Import Project="..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets" Condition="Exists('..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" />
166 + <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
167 + <PropertyGroup>
168 + <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
169 + </PropertyGroup>
170 + <Error Condition="!Exists('..\..\packages\WixToolset.BootstrapperCore.4.0.1\build\WixToolset.BootstrapperCore.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.BootstrapperCore.4.0.1\build\WixToolset.BootstrapperCore.props'))" />
171 + <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.13\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.13\build\WixToolset.DUtil.props'))" />
172 + <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets'))" />
173 + </Target>
174 +</Project>
src/engine/packages.config new
+6
@@ -0,0 +1,6 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<packages>
3 + <package id="Nerdbank.GitVersioning" version="2.1.65" targetFramework="native" developmentDependency="true" />
4 + <package id="WixToolset.BootstrapperCore" version="4.0.1" targetFramework="native" />
5 + <package id="WixToolset.DUtil" version="4.0.13" targetFramework="native" />
6 +</packages>
\ No newline at end of file
src/engine/precomp.cpp new
+3
@@ -0,0 +1,3 @@
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 +#include "precomp.h"
src/engine/precomp.h
+5 -2
@@ -4,12 +4,15 @@
4
5 #define ExitTrace LogErrorString
6
7 -#include <wixver.h>
8 -
7 #include <windows.h>
8 #include <aclapi.h>
9 #include <Bits.h>
10 +
11 +#pragma warning(push)
12 +#pragma warning(disable:4458) // declaration of 'xxx' hides class member
13 #include <gdiplus.h>
14 +#pragma warning(pop)
15 +
16 #include <math.h>
17 #include <msiquery.h>
18 #include <sddl.h>
src/engine/variable.cpp
+1
@@ -1698,6 +1698,7 @@ static HRESULT InitializeVariableOsInfo(
1698 BURN_VARIANT value = { };
1699
1700 ovix.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEXW);
1701 + #pragma warning(suppress: 4996)
1702 if (!::GetVersionExW((LPOSVERSIONINFOW)&ovix))
1703 {
1704 ExitWithLastError(hr, "Failed to get OS info.");
src/stub/packages.config new
+5
@@ -0,0 +1,5 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<packages>
3 + <package id="Nerdbank.GitVersioning" version="2.1.65" targetFramework="native" developmentDependency="true" />
4 + <package id="WixToolset.DUtil" version="4.0.13" targetFramework="native" />
5 +</packages>
\ No newline at end of file
src/stub/precomp.cpp new
+3
@@ -0,0 +1,3 @@
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 +#include "precomp.h"
src/stub/runtime.win.WixToolset.Burn.nuspec new
+20
@@ -0,0 +1,20 @@
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 + <authors>$authors$</authors>
7 + <owners>$authors$</owners>
8 + <!-- <license type="expression">MS-RL</license> -->
9 + <licenseUrl>https://licenses.nuget.org/MS-RL</licenseUrl>
10 + <projectUrl>https://github.com/wixtoolset/burn</projectUrl>
11 + <requireLicenseAcceptance>false</requireLicenseAcceptance>
12 + <description>$description$</description>
13 + <copyright>$copyright$</copyright>
14 + </metadata>
15 +
16 + <files>
17 + <file src="Win32\burn.x86.exe" target="runtimes\win-x86\native" />
18 + <file src="Win32\burn.x86.pdb" target="runtimes\win-x86\native" />
19 + </files>
20 +</package>
src/stub/stub.rc
-11
@@ -1,14 +1,3 @@
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 -#define VER_APP
4 -#define VER_ORIGINAL_FILENAME "setup.exe"
5 -#define VER_INTERNAL_NAME "setup"
6 -#define VER_FILE_DESCRIPTION "WiX Toolset Bootstrapper"
7 -#include "wix.rc"
8 -
3 1 ICON "stub.ico"
10 -
11 -//#define MANIFEST_RESOURCE_ID 1
12 -#ifndef ARM // the ARM manifest is automatically injected but other platforms need it done manually.
13 -//MANIFEST_RESOURCE_ID RT_MANIFEST "stub.manifest"
14 -#endif
src/stub/stub.vcxproj new
+104
@@ -0,0 +1,104 @@
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 DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 + <Import Project="..\..\packages\WixToolset.DUtil.4.0.13\build\WixToolset.DUtil.props" Condition="Exists('..\..\packages\WixToolset.DUtil.4.0.13\build\WixToolset.DUtil.props')" />
6 +
7 + <ItemGroup Label="ProjectConfigurations">
8 + <ProjectConfiguration Include="Debug|Win32">
9 + <Configuration>Debug</Configuration>
10 + <Platform>Win32</Platform>
11 + </ProjectConfiguration>
12 + <ProjectConfiguration Include="Release|Win32">
13 + <Configuration>Release</Configuration>
14 + <Platform>Win32</Platform>
15 + </ProjectConfiguration>
16 + <ProjectConfiguration Include="Debug|x64">
17 + <Configuration>Debug</Configuration>
18 + <Platform>x64</Platform>
19 + </ProjectConfiguration>
20 + <ProjectConfiguration Include="Release|x64">
21 + <Configuration>Release</Configuration>
22 + <Platform>x64</Platform>
23 + </ProjectConfiguration>
24 + </ItemGroup>
25 +
26 + <PropertyGroup>
27 + <NameSuffix Condition=" '$(Platform)'=='Win32' ">x86</NameSuffix>
28 + <NameSuffix Condition=" '$(Platform)'=='x64' ">amd64</NameSuffix>
29 + </PropertyGroup>
30 +
31 + <PropertyGroup Label="Globals">
32 + <ProjectGuid>{C38373AA-882F-4F55-B03F-2AAB4BFBE3F1}</ProjectGuid>
33 + <ConfigurationType>Application</ConfigurationType>
34 + <ProjectSubSystem>Windows</ProjectSubSystem>
35 + <TargetName>burn.$(NameSuffix)</TargetName>
36 + <PlatformToolset>v141</PlatformToolset>
37 + <CharacterSet>Unicode</CharacterSet>
38 + <Description>Native component of WixToolset.Burn</Description>
39 + </PropertyGroup>
40 +
41 + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
42 + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
43 +
44 + <ImportGroup Label="ExtensionSettings">
45 + </ImportGroup>
46 +
47 + <ImportGroup Label="Shared">
48 + <Import Project="..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets" Condition="Exists('..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" />
49 + </ImportGroup>
50 +
51 + <PropertyGroup>
52 + <ProjectAdditionalIncludeDirectories>$(ProjectDir)..\engine\inc</ProjectAdditionalIncludeDirectories>
53 + <ProjectAdditionalLinkLibraries>cabinet.lib;crypt32.lib;gdiplus.lib;msi.lib;rpcrt4.lib;shlwapi.lib;wininet.lib;wintrust.lib;wuguid.lib;engine.lib;engine.res</ProjectAdditionalLinkLibraries>
54 + </PropertyGroup>
55 +
56 + <ItemDefinitionGroup>
57 + <Link>
58 + <SwapRunFromCD>true</SwapRunFromCD>
59 + <SwapRunFromNET>true</SwapRunFromNET>
60 + <DelayLoadDLLs>cabinet.dll;crypt32.dll;gdiplus.dll;msi.dll;shlwapi.dll;version.dll;wininet.dll;wintrust.dll</DelayLoadDLLs>
61 + </Link>
62 + </ItemDefinitionGroup>
63 +
64 + <ItemGroup>
65 + <ClInclude Include="precomp.h" />
66 + </ItemGroup>
67 + <ItemGroup>
68 + <ClCompile Include="precomp.cpp">
69 + <PrecompiledHeader>Create</PrecompiledHeader>
70 + </ClCompile>
71 + <ClCompile Include="stub.cpp" />
72 + <ClCompile Include="StubSection.cpp">
73 + <!-- Workaround for VS2015 behavior change that omits the .wixburn section. -->
74 + <RemoveUnreferencedCodeData>false</RemoveUnreferencedCodeData>
75 + </ClCompile>
76 + </ItemGroup>
77 + <ItemGroup>
78 + <Manifest Include="stub.manifest" />
79 + </ItemGroup>
80 + <ItemGroup>
81 + <ResourceCompile Include="stub.rc" />
82 + </ItemGroup>
83 +
84 + <ItemGroup>
85 + <ProjectReference Include="..\engine\engine.vcxproj" />
86 + </ItemGroup>
87 +
88 + <ItemGroup>
89 + <None Include="packages.config" />
90 + </ItemGroup>
91 +
92 + <Target Name="Pack" DependsOnTargets="GetBuildVersion">
93 + <Exec Command='nuget pack runtime.win.WixToolset.Burn.nuspec -BasePath "$(BaseOutputPath)$(Configuration)" -OutputDirectory "$(BaseOutputPath)$(Configuration)" -NoPackageAnalysis -Properties Configuration=$(Configuration);Id=runtime.win.WixToolset.Burn;Version="$(BuildVersionSimple)";Platform=$(PlatformTarget);Authors="$(Authors)";Copyright="$(Copyright)";Description="$(Description)";Title="$(Title)"' />
94 + </Target>
95 +
96 + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
97 + <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
98 + <PropertyGroup>
99 + <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105.The missing file is {0}.</ErrorText>
100 + </PropertyGroup>
101 + <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets'))" />
102 + <Error Condition="!Exists('..\..\packages\WixToolset.DUtil.4.0.13\build\WixToolset.DUtil.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.DUtil.4.0.13\build\WixToolset.DUtil.props'))" />
103 + </Target>
104 +</Project>
version.json new
+11
@@ -0,0 +1,11 @@
1 +{
2 + "version": "4.0",
3 + "publicReleaseRefSpec": [
4 + "^refs/heads/master$"
5 + ],
6 + "cloudBuild": {
7 + "buildNumber": {
8 + "enabled": true
9 + }
10 + }
11 +}