Add WixBuildTools.TestSupport.Native.
Sean Hall committed
Jul 15, 2020 at 16:47 UTC
64deb692cd9f690e3ce5560530fe93d7f0e3cd67
11 files changed
+381
WixBuildTools.sln
+12
@@ -8,6 +8,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixBuildTools.MsgGen", "src
8
EndProject
9
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixBuildTools.TestSupport", "src\WixBuildTools.TestSupport\WixBuildTools.TestSupport.csproj", "{6C57EF2C-979A-4106-A9E5-FE342810619A}"
10
EndProject
11
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WixBuildTools.TestSupport.Native", "src\WixBuildTools.TestSupport.Native\WixBuildTools.TestSupport.Native.vcxproj", "{95BABD97-FBDB-453A-AF8A-FA031A07B599}"
12
+EndProject
13
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F6660B22-092F-4BC5-A303-E6F696C31E1B}"
14
ProjectSection(SolutionItems) = preProject
15
.editorconfig = .editorconfig
@@ -59,6 +61,16 @@ Global
61
{6C57EF2C-979A-4106-A9E5-FE342810619A}.Release|x64.Build.0 = Release|Any CPU
62
{6C57EF2C-979A-4106-A9E5-FE342810619A}.Release|x86.ActiveCfg = Release|Any CPU
63
{6C57EF2C-979A-4106-A9E5-FE342810619A}.Release|x86.Build.0 = Release|Any CPU
64
+ {95BABD97-FBDB-453A-AF8A-FA031A07B599}.Debug|Any CPU.ActiveCfg = Debug|Win32
65
+ {95BABD97-FBDB-453A-AF8A-FA031A07B599}.Debug|Any CPU.Build.0 = Debug|Win32
66
+ {95BABD97-FBDB-453A-AF8A-FA031A07B599}.Debug|x64.ActiveCfg = Debug|Win32
67
+ {95BABD97-FBDB-453A-AF8A-FA031A07B599}.Debug|x86.ActiveCfg = Debug|Win32
68
+ {95BABD97-FBDB-453A-AF8A-FA031A07B599}.Debug|x86.Build.0 = Debug|Win32
69
+ {95BABD97-FBDB-453A-AF8A-FA031A07B599}.Release|Any CPU.ActiveCfg = Release|Win32
70
+ {95BABD97-FBDB-453A-AF8A-FA031A07B599}.Release|Any CPU.Build.0 = Release|Win32
71
+ {95BABD97-FBDB-453A-AF8A-FA031A07B599}.Release|x64.ActiveCfg = Release|Win32
72
+ {95BABD97-FBDB-453A-AF8A-FA031A07B599}.Release|x86.ActiveCfg = Release|Win32
73
+ {95BABD97-FBDB-453A-AF8A-FA031A07B599}.Release|x86.Build.0 = Release|Win32
74
EndGlobalSection
75
GlobalSection(SolutionProperties) = preSolution
76
HideSolutionNode = FALSE
src/Cpp.Build.props
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>
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
+ <PropertyGroup Condition="'$(WindowsTargetPlatformVersion)'=='' AND '$(VisualStudioVersion)'>='15.0'">
12
+ <WindowsTargetPlatformVersion>$([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '10.0'))</WindowsTargetPlatformVersion>
13
+ </PropertyGroup>
14
+
15
+ <ItemDefinitionGroup>
16
+ <ClCompile>
17
+ <DisableSpecificWarnings>$(DisableSpecificCompilerWarnings)</DisableSpecificWarnings>
18
+ <WarningLevel>Level4</WarningLevel>
19
+ <AdditionalIncludeDirectories>$(ProjectDir)inc;$(MSBuildProjectDirectory);$(IntDir);$(SqlCESdkIncludePath);$(ProjectAdditionalIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
20
+ <PreprocessorDefinitions>WIN32;_WINDOWS;_WIN32_MSI=500;_WIN32_WINNT=0x0501;$(ArmPreprocessorDefinitions);$(UnicodePreprocessorDefinitions);_CRT_STDIO_LEGACY_WIDE_SPECIFIERS;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
21
+ <PrecompiledHeader>Use</PrecompiledHeader>
22
+ <PrecompiledHeaderFile>precomp.h</PrecompiledHeaderFile>
23
+ <CallingConvention Condition="'$(Platform)'=='Win32'">StdCall</CallingConvention>
24
+ <TreatWarningAsError>true</TreatWarningAsError>
25
+ <ExceptionHandling>false</ExceptionHandling>
26
+ <AdditionalOptions>-YlprecompDefine</AdditionalOptions>
27
+ <AdditionalOptions Condition=" $(PlatformToolset.StartsWith('v14')) ">/Zc:threadSafeInit- %(AdditionalOptions)</AdditionalOptions>
28
+ <MultiProcessorCompilation Condition=" $(NUMBER_OF_PROCESSORS) > 4 ">true</MultiProcessorCompilation>
29
+ </ClCompile>
30
+ <ResourceCompile>
31
+ <PreprocessorDefinitions>$(ArmPreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
32
+ <AdditionalIncludeDirectories>$(ProjectAdditionalResourceIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
33
+ </ResourceCompile>
34
+ <Lib>
35
+ <AdditionalLibraryDirectories>$(OutDir);$(AdditionalMultiTargetLibraryPath);$(ProjectAdditionalLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
36
+ </Lib>
37
+ <Link>
38
+ <SubSystem>$(ProjectSubSystem)</SubSystem>
39
+ <ModuleDefinitionFile>$(ProjectModuleDefinitionFile)</ModuleDefinitionFile>
40
+ <NoEntryPoint>$(ResourceOnlyDll)</NoEntryPoint>
41
+ <GenerateDebugInformation>true</GenerateDebugInformation>
42
+ <AdditionalDependencies>$(ProjectAdditionalLinkLibraries);advapi32.lib;comdlg32.lib;user32.lib;oleaut32.lib;gdi32.lib;shell32.lib;ole32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
43
+ <AdditionalLibraryDirectories>$(OutDir);$(AdditionalMultiTargetLibraryPath);$(ArmLibraryDirectories);$(ProjectAdditionalLinkLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
44
+ <AdditionalOptions Condition=" $(PlatformToolset.StartsWith('v14')) ">/IGNORE:4099 %(AdditionalOptions)</AdditionalOptions>
45
+ </Link>
46
+ </ItemDefinitionGroup>
47
+
48
+ <ItemDefinitionGroup Condition=" '$(Platform)'=='Win32' and '$(PlatformToolset)'!='v100'">
49
+ <ClCompile>
50
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
51
+ </ClCompile>
52
+ </ItemDefinitionGroup>
53
+ <ItemDefinitionGroup Condition=" '$(Platform)'=='arm' ">
54
+ <ClCompile>
55
+ <CallingConvention>CDecl</CallingConvention>
56
+ </ClCompile>
57
+ </ItemDefinitionGroup>
58
+ <ItemDefinitionGroup Condition=" '$(ConfigurationType)'=='StaticLibrary' ">
59
+ <ClCompile>
60
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
61
+ <OmitDefaultLibName>true</OmitDefaultLibName>
62
+ <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
63
+ </ClCompile>
64
+ </ItemDefinitionGroup>
65
+ <ItemDefinitionGroup Condition=" '$(Configuration)'=='Debug' ">
66
+ <ClCompile>
67
+ <Optimization>Disabled</Optimization>
68
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
69
+ <PreprocessorDefinitions>_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
70
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
71
+ </ClCompile>
72
+ </ItemDefinitionGroup>
73
+ <ItemDefinitionGroup Condition=" '$(Configuration)'=='Debug' and '$(CLRSupport)'=='true' ">
74
+ <ClCompile>
75
+ <BasicRuntimeChecks></BasicRuntimeChecks>
76
+ <RuntimeLibrary>MultiThreadedDebugDll</RuntimeLibrary>
77
+ </ClCompile>
78
+ </ItemDefinitionGroup>
79
+ <ItemDefinitionGroup Condition=" '$(Configuration)'=='Release' ">
80
+ <ClCompile>
81
+ <Optimization>MinSpace</Optimization>
82
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
83
+ <FunctionLevelLinking>true</FunctionLevelLinking>
84
+ <IntrinsicFunctions>true</IntrinsicFunctions>
85
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
86
+ </ClCompile>
87
+ <Link>
88
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
89
+ <OptimizeReferences>true</OptimizeReferences>
90
+ </Link>
91
+ </ItemDefinitionGroup>
92
+ <ItemDefinitionGroup Condition=" '$(Configuration)'=='Release' and '$(CLRSupport)'=='true' ">
93
+ <ClCompile>
94
+ <BasicRuntimeChecks></BasicRuntimeChecks>
95
+ <RuntimeLibrary>MultiThreadedDll</RuntimeLibrary>
96
+ </ClCompile>
97
+ </ItemDefinitionGroup>
98
+ <ItemDefinitionGroup Condition=" '$(CLRSupport)'=='true' ">
99
+ <Link>
100
+ <KeyFile>$(LinkKeyFile)</KeyFile>
101
+ <DelaySign>$(LinkDelaySign)</DelaySign>
102
+ </Link>
103
+ </ItemDefinitionGroup>
104
+</Project>
src/WixBuildTools.TestSupport.Native/AssemblyInfo.cpp
new
+17
@@ -0,0 +1,17 @@
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"
4
+
5
+using namespace System::Reflection;
6
+using namespace System::Runtime::CompilerServices;
7
+using namespace System::Runtime::InteropServices;
8
+
9
+//
10
+// General Information about an assembly is controlled through the following
11
+// set of attributes. Change these attribute values to modify the information
12
+// associated with an assembly.
13
+//
14
+[assembly: AssemblyTitleAttribute("WixBuildTools.TestSupport.Native")];
15
+[assembly: AssemblyDescriptionAttribute("")];
16
+[assembly: AssemblyCultureAttribute("")];
17
+[assembly: ComVisible(false)];
src/WixBuildTools.TestSupport.Native/NativeAssert.h
new
+85
@@ -0,0 +1,85 @@
1
+#pragma once
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
+namespace WixBuildTools {
6
+namespace TestSupport {
7
+
8
+ using namespace System;
9
+ using namespace System::Collections::Generic;
10
+ using namespace System::Linq;
11
+ using namespace Xunit;
12
+
13
+ public ref class NativeAssert : WixAssert
14
+ {
15
+ public:
16
+ static void NotNull(LPCWSTR wz)
17
+ {
18
+ if (!wz)
19
+ {
20
+ Assert::NotNull(nullptr);
21
+ }
22
+ }
23
+
24
+ // For some reason, naming these NotStringEqual methods "NotEqual" breaks Intellisense in files that call any overload of the NotEqual method.
25
+ static void NotStringEqual(LPCWSTR expected, LPCWSTR actual)
26
+ {
27
+ NativeAssert::NotStringEqual(expected, actual, FALSE);
28
+ }
29
+
30
+ static void NotStringEqual(LPCWSTR expected, LPCWSTR actual, BOOL ignoreCase)
31
+ {
32
+ IEqualityComparer<String^>^ comparer = ignoreCase ? StringComparer::InvariantCultureIgnoreCase : StringComparer::InvariantCulture;
33
+ Assert::NotEqual(NativeAssert::LPWSTRToString(expected), NativeAssert::LPWSTRToString(actual), comparer);
34
+ }
35
+
36
+ // For some reason, naming these StringEqual methods "Equal" breaks Intellisense in files that call any overload of the Equal method.
37
+ static void StringEqual(LPCWSTR expected, LPCWSTR actual)
38
+ {
39
+ NativeAssert::StringEqual(expected, actual, FALSE);
40
+ }
41
+
42
+ static void StringEqual(LPCWSTR expected, LPCWSTR actual, BOOL ignoreCase)
43
+ {
44
+ IEqualityComparer<String^>^ comparer = ignoreCase ? StringComparer::InvariantCultureIgnoreCase : StringComparer::InvariantCulture;
45
+ Assert::Equal(NativeAssert::LPWSTRToString(expected), NativeAssert::LPWSTRToString(actual), comparer);
46
+ }
47
+
48
+ static void Succeeded(HRESULT hr, LPCSTR zFormat, LPCSTR zArg, ... array<LPCSTR>^ zArgs)
49
+ {
50
+ array<Object^>^ formatArgs = gcnew array<Object^, 1>(zArgs->Length + 1);
51
+ formatArgs[0] = NativeAssert::LPSTRToString(zArg);
52
+ for (int i = 0; i < zArgs->Length; ++i)
53
+ {
54
+ formatArgs[i + 1] = NativeAssert::LPSTRToString(zArgs[i]);
55
+ }
56
+ WixAssert::Succeeded(hr, gcnew String(zFormat), formatArgs);
57
+ }
58
+
59
+ static void Succeeded(HRESULT hr, LPCSTR zFormat, ... array<LPCWSTR>^ wzArgs)
60
+ {
61
+ array<Object^>^ formatArgs = gcnew array<Object^, 1>(wzArgs->Length);
62
+ for (int i = 0; i < wzArgs->Length; ++i)
63
+ {
64
+ formatArgs[i] = NativeAssert::LPWSTRToString(wzArgs[i]);
65
+ }
66
+ WixAssert::Succeeded(hr, gcnew String(zFormat), formatArgs);
67
+ }
68
+
69
+ static void ValidReturnCode(HRESULT hr, ... array<HRESULT>^ validReturnCodes)
70
+ {
71
+ Assert::Contains(hr, (IEnumerable<HRESULT>^)validReturnCodes);
72
+ }
73
+
74
+ private:
75
+ static String^ LPSTRToString(LPCSTR z)
76
+ {
77
+ return z ? gcnew String(z) : nullptr;
78
+ }
79
+ static String^ LPWSTRToString(LPCWSTR wz)
80
+ {
81
+ return wz ? gcnew String(wz) : nullptr;
82
+ }
83
+ };
84
+}
85
+}
src/WixBuildTools.TestSupport.Native/WixBuildTools.TestSupport.Native.vcxproj
new
+60
@@ -0,0 +1,60 @@
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
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
6
+ <Import Project="build\WixBuildTools.TestSupport.Native.props" />
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
+ </ItemGroup>
17
+ <PropertyGroup Label="Globals">
18
+ <ProjectTypes>{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}</ProjectTypes>
19
+ <ProjectGuid>{95BABD97-FBDB-453A-AF8A-FA031A07B599}</ProjectGuid>
20
+ <RootNamespace>WixBuildTools::TestSupport</RootNamespace>
21
+ <Keyword>ManagedCProj</Keyword>
22
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
23
+ <CharacterSet>Unicode</CharacterSet>
24
+ <CLRSupport>true</CLRSupport>
25
+ </PropertyGroup>
26
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
27
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
28
+ <PropertyGroup>
29
+ <ProjectAdditionalIncludeDirectories>
30
+ </ProjectAdditionalIncludeDirectories>
31
+ <ProjectAdditionalLinkLibraries>
32
+ </ProjectAdditionalLinkLibraries>
33
+ </PropertyGroup>
34
+ <ItemGroup>
35
+ <ClCompile Include="AssemblyInfo.cpp" />
36
+ <ClCompile Include="precomp.cpp">
37
+ <PrecompiledHeader>Create</PrecompiledHeader>
38
+ <!-- Warnings from NativeAssert.h from referencing netstandard dlls -->
39
+ <DisableSpecificWarnings>4564;4691</DisableSpecificWarnings>
40
+ </ClCompile>
41
+ </ItemGroup>
42
+ <ItemGroup>
43
+ <ClInclude Include="precomp.h" />
44
+ <ClInclude Include="NativeAssert.h" />
45
+ </ItemGroup>
46
+ <ItemGroup>
47
+ <None Include="packages.config" />
48
+ </ItemGroup>
49
+ <ItemGroup>
50
+ <Reference Include="System" />
51
+ <Reference Include="System.Core" />
52
+ </ItemGroup>
53
+ <ItemGroup>
54
+ <ProjectReference Include="..\WixBuildTools.TestSupport\WixBuildTools.TestSupport.csproj">
55
+ <Project>{6C57EF2C-979A-4106-A9E5-FE342810619A}</Project>
56
+ </ProjectReference>
57
+ </ItemGroup>
58
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
59
+ <Import Project="build\WixBuildTools.TestSupport.Native.targets" />
60
+</Project>
\ No newline at end of file
src/WixBuildTools.TestSupport.Native/WixBuildTools.TestSupport.Native.vcxproj.filters
new
+33
@@ -0,0 +1,33 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <ItemGroup>
4
+ <Filter Include="Source Files">
5
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
6
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
7
+ </Filter>
8
+ <Filter Include="Header Files">
9
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
10
+ <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
11
+ </Filter>
12
+ <Filter Include="Resource Files">
13
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
14
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
15
+ </Filter>
16
+ </ItemGroup>
17
+ <ItemGroup>
18
+ <ClInclude Include="precomp.h">
19
+ <Filter>Header Files</Filter>
20
+ </ClInclude>
21
+ <ClInclude Include="NativeAssert.h">
22
+ <Filter>Header Files</Filter>
23
+ </ClInclude>
24
+ </ItemGroup>
25
+ <ItemGroup>
26
+ <ClCompile Include="AssemblyInfo.cpp">
27
+ <Filter>Source Files</Filter>
28
+ </ClCompile>
29
+ <ClCompile Include="precomp.cpp">
30
+ <Filter>Source Files</Filter>
31
+ </ClCompile>
32
+ </ItemGroup>
33
+</Project>
\ No newline at end of file
src/WixBuildTools.TestSupport.Native/build/WixBuildTools.TestSupport.Native.props
new
+29
@@ -0,0 +1,29 @@
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
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
6
+ <PropertyGroup>
7
+ <RepoRootDir Condition=" '$(RepoRootDir)' == '' ">$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), version.json))</RepoRootDir>
8
+ </PropertyGroup>
9
+ <Import Project="$(RepoRootDir)\packages\xunit.core.2.4.1\build\xunit.core.props" Condition="Exists('$(RepoRootDir)\packages\xunit.core.2.4.1\build\xunit.core.props')" />
10
+ <Import Project="$(RepoRootDir)\packages\xunit.runner.visualstudio.2.4.1\build\net20\xunit.runner.visualstudio.props" Condition="Exists('$(RepoRootDir)\packages\xunit.runner.visualstudio.2.4.1\build\net20\xunit.runner.visualstudio.props')" />
11
+ <PropertyGroup>
12
+ <PlatformToolset>v142</PlatformToolset>
13
+ <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
14
+ </PropertyGroup>
15
+ <ItemGroup>
16
+ <Reference Include="xunit.abstractions">
17
+ <HintPath>$(RepoRootDir)\packages\xunit.abstractions.2.0.3\lib\netstandard2.0\xunit.abstractions.dll</HintPath>
18
+ </Reference>
19
+ <Reference Include="xunit.assert">
20
+ <HintPath>$(RepoRootDir)\packages\xunit.assert.2.4.1\lib\netstandard1.1\xunit.assert.dll</HintPath>
21
+ </Reference>
22
+ <Reference Include="xunit.core">
23
+ <HintPath>$(RepoRootDir)\packages\xunit.extensibility.core.2.4.1\lib\netstandard1.1\xunit.core.dll</HintPath>
24
+ </Reference>
25
+ <Reference Include="xunit.execution.desktop">
26
+ <HintPath>$(RepoRootDir)\packages\xunit.extensibility.execution.2.4.1\lib\net452\xunit.execution.desktop.dll</HintPath>
27
+ </Reference>
28
+ </ItemGroup>
29
+</Project>
\ No newline at end of file
src/WixBuildTools.TestSupport.Native/build/WixBuildTools.TestSupport.Native.targets
new
+15
@@ -0,0 +1,15 @@
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
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
6
+ <Import Project="$(RepoRootDir)\packages\xunit.core.2.4.1\build\xunit.core.targets" Condition="Exists('$(RepoRootDir)\packages\xunit.core.2.4.1\build\xunit.core.targets')" />
7
+ <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
8
+ <PropertyGroup>
9
+ <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>
10
+ </PropertyGroup>
11
+ <Error Condition="!Exists('$(RepoRootDir)\packages\xunit.core.2.4.1\build\xunit.core.props')" Text="$([System.String]::Format('$(ErrorText)', '$(RepoRootDir)\packages\xunit.core.2.4.1\build\xunit.core.props'))" />
12
+ <Error Condition="!Exists('$(RepoRootDir)\packages\xunit.core.2.4.1\build\xunit.core.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(RepoRootDir)\packages\xunit.core.2.4.1\build\xunit.core.targets'))" />
13
+ <Error Condition="!Exists('$(RepoRootDir)\packages\xunit.runner.visualstudio.2.4.1\build\net20\xunit.runner.visualstudio.props')" Text="$([System.String]::Format('$(ErrorText)', '$(RepoRootDir)\packages\xunit.runner.visualstudio.2.4.1\build\net20\xunit.runner.visualstudio.props'))" />
14
+ </Target>
15
+</Project>
\ No newline at end of file
src/WixBuildTools.TestSupport.Native/packages.config
new
+12
@@ -0,0 +1,12 @@
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
+<packages>
6
+ <package id="xunit.abstractions" version="2.0.3" />
7
+ <package id="xunit.assert" version="2.4.1" />
8
+ <package id="xunit.core" version="2.4.1" />
9
+ <package id="xunit.extensibility.core" version="2.4.1" />
10
+ <package id="xunit.extensibility.execution" version="2.4.1" />
11
+ <package id="xunit.runner.visualstudio" version="2.4.1" />
12
+</packages>
src/WixBuildTools.TestSupport.Native/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/WixBuildTools.TestSupport.Native/precomp.h
new
+11
@@ -0,0 +1,11 @@
1
+#pragma once
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
+#include <windows.h>
6
+#include <strsafe.h>
7
+
8
+#include "NativeAssert.h"
9
+
10
+#pragma managed
11
+#include <vcclr.h>