@joebigelow / wix / commits / 64deb692

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) &gt; 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>