dir.props (303 lines of code) (raw):

<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <!-- $(OS) is set to Unix/Windows_NT. This comes from an environment variable on Windows and MSBuild on Unix. Possible Values: Windows_NT / Unix / OSX --> <PropertyGroup> <OsEnvironment Condition="'$(OsEnvironment)'==''">$(OS)</OsEnvironment> <TargetPlatformIdentifier Condition="'$(TargetPlatformIdentifier)'==''">$(OS)</TargetPlatformIdentifier> </PropertyGroup> <PropertyGroup> <!-- This is to workaround an issue with a dependent assembly (Microsoft.Build.Tasks.CodeAnalysis.dll) copying its dependencies (which are in the GAC). --> <DoNotCopyLocalIfInGac>true</DoNotCopyLocalIfInGac> <TargetMSBuildToolsVersion>15.0</TargetMSBuildToolsVersion> </PropertyGroup> <PropertyGroup> <!-- Disable the import of the dynamically generated NuGet files because they generate warnings anyway: Packages containing MSBuild targets and props files cannot be fully installed in projects targeting multiple frameworks. The MSBuild targets and props files have been ignored. --> <IncludeNuGetImports Condition="'$(IncludeNuGetImports)' == ''">false</IncludeNuGetImports> </PropertyGroup> <!-- Localization switches --> <PropertyGroup> <LocalizationBuildAssetsRequired Condition="'$(LocalizedBuild)' == 'true' or '$(SyncXlf)' == 'true'">true</LocalizationBuildAssetsRequired> <!-- Syncing xlf files in parallel leads to races because of the shared resources under /Shared/Resources/xlf --> <BuildInParallel Condition="'$(SyncXlf)' == 'true'">false</BuildInParallel> </PropertyGroup> <PropertyGroup> <SerializeProjects>false</SerializeProjects> </PropertyGroup> <!-- Tool versions --> <PropertyGroup> <ProjectDir>$(MSBuildThisFileDirectory)</ProjectDir> <SourceDir>$(ProjectDir)src\</SourceDir> <PackagesDir>$(ProjectDir)packages\</PackagesDir> <!-- Output directories --> <BinDir>$(ProjectDir)bin\</BinDir> <TestWorkingDir>$(BinDir)tests\</TestWorkingDir> <!-- Package version / directories --> <BuildToolsVersion>1.0.27-prerelease-00927-05</BuildToolsVersion> <CompilerToolsVersion>2.0.0-rc3-61110-06</CompilerToolsVersion> <XunitVersion>2.1.0</XunitVersion> <MicroBuildVersion>0.2.0</MicroBuildVersion> <GitVersioningVersion>1.5.46</GitVersioningVersion> <NuSpecReferenceGeneratorVersion>1.4.2</NuSpecReferenceGeneratorVersion> </PropertyGroup> <!-- Common repo directories --> <PropertyGroup> <RepoRoot>$(MSBuildThisFileDirectory)</RepoRoot> <SourceDir>$(RepoRoot)src$([System.IO.Path]::DirectorySeparatorChar)</SourceDir> <SamplesDir>$(RepoRoot)Samples$([System.IO.Path]::DirectorySeparatorChar)</SamplesDir> <ToolsDir>$(RepoRoot)Tools$([System.IO.Path]::DirectorySeparatorChar)</ToolsDir> <ToolPackagesDir>$(RepoRoot)packages$([System.IO.Path]::DirectorySeparatorChar)</ToolPackagesDir> <MicroBuildDir>$(ToolPackagesDir)\MicroBuild.Core\$(MicroBuildVersion)\build\</MicroBuildDir> <GitVersioningDir>$(PackagesDir)\Nerdbank.GitVersioning\$(GitVersioningVersion)\build\</GitVersioningDir> <!-- Tell build tools to use the full framework dlls that contain build tasks (like the nuget assets task) --> <BuildToolsTaskDir>$(ToolsDir)net45/</BuildToolsTaskDir> <PackagingTaskDir>$(ToolsDir)net45/</PackagingTaskDir> <!-- Output directories --> <BinDir>$(RepoRoot)bin$([System.IO.Path]::DirectorySeparatorChar)</BinDir> <TestWorkingDir>$(BinDir)tests$([System.IO.Path]::DirectorySeparatorChar)</TestWorkingDir> <!-- Tool Directories --> <NuSpecReferenceGeneratorDir>$([System.IO.Path]::Combine($(ToolPackagesDir)NuSpec.ReferenceGenerator, $(NuSpecReferenceGeneratorVersion),"build", "dotnet"))$([System.IO.Path]::DirectorySeparatorChar)</NuSpecReferenceGeneratorDir> <!-- nuget cache location. Used by packageresolve.targets --> <PackagesDir Condition="'$(OsEnvironment)'=='Windows_NT'">$([System.IO.Path]::Combine($(USERPROFILE), '.nuget', 'packages'))</PackagesDir> <PackagesDir Condition="'$(OsEnvironment)'!='Windows_NT'">$([System.IO.Path]::Combine($(HOME), '.nuget', 'packages'))</PackagesDir> <!-- NuSpec.ReferenceGenerator targets use SolutionDir --> <SolutionDir>$(SourceDir)</SolutionDir> <DotnetCliPath Condition="'$(DotnetCliPath)'==''">$(ToolsDir)dotnetcli/</DotnetCliPath> <DotnetToolCommand Condition="'$(DotnetToolCommand)' == '' and '$(OsEnvironment)'=='Windows_NT'">$(DotnetCliPath)dotnet.exe</DotnetToolCommand> <DotnetToolCommand Condition="'$(DotnetToolCommand)' == '' and '$(OsEnvironment)'!='Windows_NT'">$(DotnetCliPath)dotnet</DotnetToolCommand> <DnuToolPath>$(DotnetToolCommand)</DnuToolPath> <DnuCoreRestoreCommand>&quot;$(DnuToolPath)&quot; restore</DnuCoreRestoreCommand> <DnuCoreRestoreCommand Condition="'$(OsEnvironment)'=='OSX'">ulimit -n 2500 ; $(DnuCoreRestoreCommand)</DnuCoreRestoreCommand> <!-- Temporary until everything supports lowercase package directory names --> <DnuCoreRestoreCommand>$(DnuCoreRestoreCommand) --legacy-packages-directory</DnuCoreRestoreCommand> <!-- packageresolve.targets from build tools uses the DnuRestoreCommand property. Setting it to use dotnet CLI under the hood--> <DnuRestoreCommand>$(DnuCoreRestoreCommand) --packages $(PackagesDir)</DnuRestoreCommand> </PropertyGroup> <!-- Common nuget properties --> <PropertyGroup> <NuGetDir>$(ToolPackagesDir)</NuGetDir> <NuGetConfigDir>$([System.IO.Path]::Combine($(SourceDir),".nuget"))</NuGetConfigDir> <GlobalPropertiesFile>$(MSBuildThisFileFullPath)</GlobalPropertiesFile> <NuGetToolPath Condition="'$(NuGetToolPath)'==''">$([System.IO.Path]::Combine($(NuGetDir), "NuGet.exe"))</NuGetToolPath> </PropertyGroup> <!-- Copy the "_._" file to the output directory, which is used by the NuSpecs to indicate an empty folder --> <ItemGroup> <None Include="$(SourceDir)\nuget\_._"> <Link>_._</Link> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <Visible>False</Visible> </None> </ItemGroup> <!-- Set default Configuration and Platform --> <PropertyGroup Condition="'$(Configuration)' ==''"> <Configuration Condition="'$(OS)' == 'Windows_NT'">Debug</Configuration> <Configuration Condition="'$(OS)' != 'Windows_NT'">Debug-MONO</Configuration> </PropertyGroup> <PropertyGroup> <DefineConstants>$(DefineConstants);TRACE;STANDALONEBUILD</DefineConstants> <DefineConstants Condition="$(LocalizedBuild) == 'true'">$(DefineConstants);LOCALIZED_BUILD</DefineConstants> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)' ==''"> <Configuration Condition="'$(OS)' == 'Windows_NT'">Debug</Configuration> <Configuration Condition="'$(OS)' != 'Windows_NT'">Debug-MONO</Configuration> </PropertyGroup> <!-- Setup Default symbol and optimization for Configuration --> <PropertyGroup Condition="'$(Configuration)' == 'Debug'"> <DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols> <Optimize Condition="'$(Optimize)' == ''">false</Optimize> <DebugType Condition="'$(DebugType)' == ''">full</DebugType> <MsbuildDebugger>true</MsbuildDebugger> <DefineConstants>$(DefineConstants);DEBUG</DefineConstants> <FullFrameworkBuild>true</FullFrameworkBuild> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)' == 'Debug-MONO'"> <DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols> <Optimize Condition="'$(Optimize)' == ''">false</Optimize> <DebugType Condition="'$(DebugType)' == ''">full</DebugType> <DefineConstants>$(DefineConstants);DEBUG</DefineConstants> <MonoBuild>true</MonoBuild> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)' == 'Release'"> <DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols> <Optimize Condition="'$(Optimize)' == ''">true</Optimize> <DebugType Condition="'$(DebugType)' == ''">pdbonly</DebugType> <MsbuildDebugger>true</MsbuildDebugger> <FullFrameworkBuild>true</FullFrameworkBuild> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)' == 'Release-MONO'"> <DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols> <Optimize Condition="'$(Optimize)' == ''">true</Optimize> <DebugType Condition="'$(DebugType)' == ''">pdbonly</DebugType> <MonoBuild>true</MonoBuild> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)' == 'Debug-NetCore'"> <DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols> <Optimize Condition="'$(Optimize)' == ''">false</Optimize> <DebugType Condition="'$(DebugType)' == ''">portable</DebugType> <DefineConstants>$(DefineConstants);DEBUG</DefineConstants> <NetCoreBuild>true</NetCoreBuild> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)' == 'Release-NetCore'"> <DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols> <Optimize Condition="'$(Optimize)' == ''">true</Optimize> <DebugType Condition="'$(DebugType)' == ''">portable</DebugType> <NetCoreBuild>true</NetCoreBuild> </PropertyGroup> <!-- Set the host specific OS and Architecture variables --> <PropertyGroup> <!-- Possible Values: win7 / osx.10.10. For linux, the value is calculated in cibuild.sh and passed at the command-line --> <RuntimeSystem Condition="'$(TargetPlatformIdentifier)' == 'Windows_NT'">win7</RuntimeSystem> <RuntimeSystem Condition="'$(TargetPlatformIdentifier)' == 'OSX'">osx.10.10</RuntimeSystem> <!-- Possible Values: Windows, Ubuntu, OSX, MONO. Append _NetCore if Configuration is net core --> <TargetSystem Condition="'$(TargetPlatformIdentifier)' == 'Windows_NT'">Windows</TargetSystem> <TargetSystem Condition="'$(TargetPlatformIdentifier)' == 'Unix'">Ubuntu</TargetSystem> <TargetSystem Condition="'$(TargetPlatformIdentifier)' == 'OSX'">OSX</TargetSystem> <TargetSystem Condition="'$(MonoBuild)' == 'true'">MONO</TargetSystem> <TargetSystem Condition="'$(NetCoreBuild)' == 'true'">$(TargetSystem)_NetCore</TargetSystem> <RuntimeArchitecture>x64</RuntimeArchitecture> <!-- Default Platform is x86 on FullFrameworkBuild. In .NET Core, always use AnyCPU --> <Platform Condition="'$(Platform)' == '' AND '$(FullFrameworkBuild)' == 'true'">x86</Platform> <Platform Condition="'$(Platform)' == '' AND '$(FullFrameworkBuild)' != 'true'">AnyCPU</Platform> <!-- Only build for specific platforms when PlatformSpecificBuild == true. Otherwise build for AnyCPU. Only MSBuild.exe and MSBuildTaskHost.exe should need this --> <PlatformTarget Condition="'$(PlatformSpecificBuild)' != 'true'">AnyCPU</PlatformTarget> <PlatformTarget Condition="'$(PlatformSpecificBuild)' == 'true' AND '$(FullFrameworkBuild)' == 'true'">$(Platform)</PlatformTarget> <PlatformTarget Condition="'$(PlatformSpecificBuild)' == 'true' AND '$(FullFrameworkBuild)' != 'true'">AnyCPU</PlatformTarget> </PropertyGroup> <!-- Configure bootstrapping --> <PropertyGroup> <BootstrapDestination Condition="'$(NetCoreBuild)' != 'true'">$(BinDir)Bootstrap$([System.IO.Path]::DirectorySeparatorChar)</BootstrapDestination> <BootstrapDestination Condition="'$(NetCoreBuild)' == 'true'">$(BinDir)Bootstrap-NetCore$([System.IO.Path]::DirectorySeparatorChar)</BootstrapDestination> <!-- If we're building with a bootstrapped MSBuild, use fresh extensions instead of the installed ones. --> <MSBuildExtensionsPath Condition="'$(BootstrappedMSBuild)' == 'true'">$(BootstrapDestination)</MSBuildExtensionsPath> </PropertyGroup> <!-- This configuration builds against the full .NET Framework but with the compilation constants to compile against the .NET Core surface area. This way we can build a binary to run ApiPort on to measure progress. --> <PropertyGroup Condition="'$(Configuration)' == 'Port-Progress'"> <DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols> <Optimize Condition="'$(Optimize)' == ''">false</Optimize> <DebugType Condition="'$(DebugType)' == ''">full</DebugType> <DefineConstants>$(DefineConstants);DEBUG;TRACE;STANDALONEBUILD</DefineConstants> <NetCoreSurface>true</NetCoreSurface> <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> </PropertyGroup> <!-- Both Mono and windows/full framework builds --> <PropertyGroup Condition="'$(NetCoreBuild)' != 'true'"> <TargetFrameworkVersion>v4.6</TargetFrameworkVersion> </PropertyGroup> <!-- .NET Core build support --> <PropertyGroup Condition="'$(NetCoreBuild)' == 'true'"> <TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v1.3</TargetFrameworkVersion> <!-- This property is re-created after importing Microsoft.Portable.CSharp.targets. If you change the value here, also update it in Before.Microsoft.Common.targets --> <TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">.NETStandard</TargetFrameworkIdentifier> <!-- Backup $(TargetFrameworkIdentifier) because it will be statically set by Microsoft.CSharp.Portable.targets and reset in our Before.Microsoft.Common.targets --> <_TargetFrameworkIdentifierBackup Condition="'$(TargetFrameworkIdentifier)' != ''">$(TargetFrameworkIdentifier)</_TargetFrameworkIdentifierBackup> <NetCoreSurface>true</NetCoreSurface> <!-- Setting this to false stops the AppX targets, which aren't supported on .NET Core, from beeing imported --> <WindowsAppContainer>false</WindowsAppContainer> <DefineConstants>$(DefineConstants);RUNTIME_TYPE_NETCORE</DefineConstants> <!-- target framework for msbuild nuget packages. Used by Nuspec.ReferenceGenerator.targets to update corefx dependencies--> <NuSpecTfm>.NETStandard$(TargetFrameworkVersion.TrimStart('v'))</NuSpecTfm> </PropertyGroup> <PropertyGroup> <ImportGetNuGetPackageVersions Condition="'$(OS)' != 'Windows_NT'">false</ImportGetNuGetPackageVersions> <NuGetTargetMoniker Condition="'$(NetCoreBuild)' == 'true'">$(TargetFrameworkIdentifier),Version=$(TargetFrameworkVersion)</NuGetTargetMoniker> <NuGetTargetMoniker Condition="'$(NetCoreBuild)' != 'true'">.NETFramework,Version=$(TargetFrameworkVersion)</NuGetTargetMoniker> </PropertyGroup> <!-- csharp targets locations --> <PropertyGroup> <CSharpTargets>$(MSBuildToolsPath)\Microsoft.CSharp.targets</CSharpTargets> <CSharpPortableTargets>$(MSBuildExtensionsPath32)\Microsoft\Portable\v5.0\Microsoft.Portable.CSharp.targets</CSharpPortableTargets> <CSharpPortableTargetsFallback>$(ToolsDir)Extensions\Microsoft\Portable\v5.0\Microsoft.Portable.CSharp.targets</CSharpPortableTargetsFallback> <CustomBeforeMicrosoftCommonTargets>$(RepoRoot)\Before.Microsoft.Common.targets</CustomBeforeMicrosoftCommonTargets> </PropertyGroup> <PropertyGroup Condition="'$(NetCoreSurface)' != 'true'"> <DefineConstants>$(DefineConstants);FEATURE_64BIT_ENVIRONMENT_QUERY</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_APARTMENT_STATE</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_APM</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_APPDOMAIN</DefineConstants> <FeatureAppDomain>true</FeatureAppDomain> <DefineConstants>$(DefineConstants);FEATURE_APPDOMAIN_UNHANDLED_EXCEPTION</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_ASSEMBLY_LOADFROM</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_ASSEMBLY_LOCATION</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_ASSEMBLYNAME_CULTUREINFO</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_ASSEMBLYNAME_CLONE</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_BINARY_SERIALIZATION</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_COM_INTEROP</DefineConstants> <DefineConstants Condition="'$(MonoBuild)' != 'true'">$(DefineConstants);FEATURE_COMPILE_IN_TESTS</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_CONSOLE_BUFFERWIDTH</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_CONSTRAINED_EXECUTION</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_CHARSET_AUTO</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_CODEDOM</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_CODETASKFACTORY</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_CULTUREINFO_CONSOLE_FALLBACK</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_CULTUREINFO_GETCULTUREINFO</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_CULTUREINFO_GETCULTURES</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_DOTNETVERSION</DefineConstants> <DefineConstants Condition="'$(MonoBuild)' != 'true'">$(DefineConstants);FEATURE_ENCODING_DEFAULT</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_ENVIRONMENT_SYSTEMDIRECTORY</DefineConstants> <DefineConstants Condition="'$(MonoBuild)' != 'true'">$(DefineConstants);FEATURE_FILE_TRACKER</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_FUSION_COMPAREASSEMBLYIDENTITY</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_GAC</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_GET_COMMANDLINE</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_HANDLE_SAFEWAITHANDLE</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_HANDLEPROCESSCORRUPTEDSTATEEXCEPTIONS</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_HANDLEREF</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_HTTP_LISTENER</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_INSTALLED_MSBUILD</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_LEGACY_GETFULLPATH</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_MEMORYSTREAM_GETBUFFER</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_NAMED_PIPES_FULL_DUPLEX</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_OSVERSION</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_PERFORMANCE_COUNTERS</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_PIPE_SECURITY</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_PFX_SIGNING</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_REFLECTION_EMIT_DEBUG_INFO</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_REGISTRY_TOOLSETS</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_REGISTRY_SDKS</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_REGISTRYHIVE_DYNDATA</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_RESGEN</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_RESOURCE_EXPOSURE</DefineConstants> <!-- System.Resources.ResourceManager.GetResourceSet() method is currently only in full framework --> <DefineConstants>$(DefineConstants);FEATURE_RESOURCEMANAGER_GETRESOURCESET</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_RESX_RESOURCE_READER</DefineConstants> <DefineConstants Condition="'$(MonoBuild)' != 'true'">$(DefineConstants);FEATURE_RTLMOVEMEMORY</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_RUN_EXE_IN_TESTS</DefineConstants> <DefineConstants Condition="'$(MonoBuild)' == 'true'">$(DefineConstants);USE_MSBUILD_DLL_EXTN</DefineConstants> <DefineConstants Condition="'$(MonoBuild)' != 'true'">$(DefineConstants);FEATURE_SECURITY_PERMISSIONS</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_SECURITY_PRINCIPAL_WINDOWS</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_SPECIAL_FOLDERS</DefineConstants> <FeatureSpecialFolders>true</FeatureSpecialFolders> <DefineConstants>$(DefineConstants);FEATURE_STRING_INTERN</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_STRONG_NAMES</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_SYSTEM_CONFIGURATION</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_SYSTEMPAGESIZE</DefineConstants> <FeatureSystemConfiguration>true</FeatureSystemConfiguration> <DefineConstants>$(DefineConstants);FEATURE_TASK_GENERATERESOURCES</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_TASKHOST</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_THREAD_ABORT</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_THREAD_CULTURE</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_THREAD_PRIORITY</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_MULTIPLE_TOOLSETS</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_NODE_REUSE</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_TYPE_INVOKEMEMBER</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_TYPE_GETINTERFACE</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_USERINTERACTIVE</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_USERDOMAINNAME</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_VARIOUS_EXCEPTIONS</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_XAML_TYPES</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_XAMLTASKFACTORY</DefineConstants> <FeatureXamlTypes>true</FeatureXamlTypes> <DefineConstants>$(DefineConstants);FEATURE_XML_SOURCE_URI</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_XML_LOADPATH</DefineConstants> <DefineConstants Condition="'$(MonoBuild)' != 'true'">$(DefineConstants);FEATURE_XML_SCHEMA_VALIDATION</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_XMLTEXTREADER</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_DEBUGGER</DefineConstants> <DefineConstants Condition="'$(MonoBuild)' != 'true'">$(DefineConstants);FEATURE_DEBUG_LAUNCH</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_WIN32_REGISTRY</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_WORKINGSET</DefineConstants> <DefineConstants Condition="'$(MonoBuild)' != 'true'">$(DefineConstants);FEATURE_VISUALSTUDIOSETUP</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_MSCOREE</DefineConstants> </PropertyGroup> <PropertyGroup> <DefineConstants Condition="'$(MonoBuild)'=='true'">$(DefineConstants);MONO</DefineConstants> <!-- Useful for tests that need OS information as a constant --> <DefineConstants Condition="'$(OS)'=='Windows_NT'">$(DefineConstants);TEST_ISWINDOWS</DefineConstants> </PropertyGroup> <PropertyGroup Condition="'$(NetCoreBuild)' != 'true'"> <CompilerToolsDir>$([System.IO.Path]::Combine($(ToolPackagesDir)Microsoft.Net.Compilers, $(CompilerToolsVersion), "tools"))$([System.IO.Path]::DirectorySeparatorChar)</CompilerToolsDir> </PropertyGroup> <PropertyGroup Condition="'$(NetCoreSurface)' == 'true'"> <!-- Indicates whether CultureInfo has setters for the CurrentCulture and CurrentUICulture properties. If not, then the corresponding properties on Thread (which aren't in .NET Core) need to be used. --> <DefineConstants>$(DefineConstants);FEATURE_CULTUREINFO_SETTERS</DefineConstants> <DefineConstants>$(DefineConstants);FEATURE_PROCESSSTARTINFO_ENVIRONMENT</DefineConstants> <DefineConstants>$(DefineConstants);USE_MSBUILD_DLL_EXTN</DefineConstants> </PropertyGroup> <!-- Change define constants as needed --> <PropertyGroup Condition="'$(MsbuildDebugger)' == 'true' AND '$(MonoBuild)' != 'true'"> <DefineConstants>$(DefineConstants);FEATURE_MSBUILD_DEBUGGER</DefineConstants> </PropertyGroup> <!-- Setup some common paths --> <PropertyGroup> <CommonPath>$(SourceDir)Common\src</CommonPath> <CommonTestPath>$(SourceDir)Common\tests</CommonTestPath> </PropertyGroup> <!-- Setup the default output and intermediate paths --> <PropertyGroup> <BaseOutputPath Condition="$(BaseOutputPath) == ''">$(BinDir)</BaseOutputPath> <RelativeOutputPathWithConfig>$(Configuration)$([System.IO.Path]::DirectorySeparatorChar)</RelativeOutputPathWithConfig> <RelativeOutputPathWithConfig Condition="'$(Platform)' != 'AnyCPU'">$([System.IO.Path]::Combine($(Platform),$(TargetPlatformIdentifier),$(Configuration)))$([System.IO.Path]::DirectorySeparatorChar)</RelativeOutputPathWithConfig> <BaseOutputPathWithConfig>$([System.IO.Path]::Combine($(BaseOutputPath),$(RelativeOutputPathWithConfig)))$([System.IO.Path]::DirectorySeparatorChar)</BaseOutputPathWithConfig> <OutputPath>$([System.IO.Path]::Combine($(BaseOutputPathWithConfig),"Output"))$([System.IO.Path]::DirectorySeparatorChar)</OutputPath> <BaseIntermediateOutputPath>$(BaseOutputPath)obj$([System.IO.Path]::DirectorySeparatorChar)</BaseIntermediateOutputPath> <IntermediateOutputPath>$([System.IO.Path]::Combine($(BaseIntermediateOutputPath)$(MSBuildProjectName),$(Configuration)))$([System.IO.Path]::DirectorySeparatorChar)</IntermediateOutputPath> <IntermediateOutputPath Condition="'$(Platform)' != 'AnyCPU'">$([System.IO.Path]::Combine($(BaseIntermediateOutputPath)$(MSBuildProjectName),$(Platform),$(Configuration)))$([System.IO.Path]::DirectorySeparatorChar)</IntermediateOutputPath> <!-- BuildTools uses this path to write some files --> <ObjDir>$(IntermediateOutputPath)</ObjDir> <!-- The TestPath seems to be used by Microsoft.DotNet.BuildTools targets. It does not seem to affect the MSBuild build in any way --> <TestPath>$(TestWorkingDir)$([System.IO.Path]::Combine($(MSBuildProjectName),$(Configuration)))$([System.IO.Path]::DirectorySeparatorChar)</TestPath> <TestPath Condition="'$(Platform)' != 'AnyCPU'">$([System.IO.Path]::Combine($(TestWorkingDir)$(MSBuildProjectName),$(Platform),$(Configuration)))$([System.IO.Path]::DirectorySeparatorChar)</TestPath> <BypassFrameworkInstallChecks>true</BypassFrameworkInstallChecks> <DeploymentDirName>$(TargetPlatformIdentifier)_Deployment</DeploymentDirName> <TestDeploymentDirName>$(DeploymentDirName)_Test</TestDeploymentDirName> <DeploymentDir>$([System.IO.Path]::Combine($(BaseOutputPath), $(Configuration), $(DeploymentDirName)))$([System.IO.Path]::DirectorySeparatorChar)</DeploymentDir> <TestDeploymentDir>$([System.IO.Path]::Combine($(BaseOutputPath), $(Configuration), $(TestDeploymentDirName)))$([System.IO.Path]::DirectorySeparatorChar)</TestDeploymentDir> <!-- Output path for helper tasks that we build for our own build process (e.g. localization tasks). Tasks should be imported from this property --> <BuildBinDir>$([System.IO.Path]::Combine($(ProjectDir), "build", "bin", $(RelativeOutputPathWithConfig), "Output"))$([System.IO.Path]::DirectorySeparatorChar)</BuildBinDir> </PropertyGroup> <PropertyGroup> <IBCMergeSubPath>x86/MSBuild</IBCMergeSubPath> </PropertyGroup> </Project>