Spaces:
Sleeping
Sleeping
<!-- | |
*********************************************************************************************** | |
Microsoft.NET.Sdk.BeforeCommon.targets | |
WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have | |
created a backup copy. Incorrect changes to this file will make it | |
impossible to load or build your projects from the command-line or the IDE. | |
Copyright (c) .NET Foundation. All rights reserved. | |
*********************************************************************************************** | |
--> | |
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |
<!-- For projects that aren't using Microsoft.NET.Sdk, these props files won't have been imported yet. | |
So import them here. --> | |
<ImportGroup Condition="'$(UsingNETSdkDefaults)' != 'true'"> | |
<Import Project="Microsoft.NET.Sdk.DefaultItems.props" /> | |
<Import Project="Microsoft.NET.SupportedTargetFrameworks.props" /> | |
<Import Project="Microsoft.NET.SupportedPlatforms.props" /> | |
<Import Project="Microsoft.NET.WindowsSdkSupportedTargetPlatforms.props" /> | |
</ImportGroup> | |
<PropertyGroup> | |
<_IsExecutable Condition="'$(OutputType)' == 'Exe' or '$(OutputType)'=='WinExe'">true</_IsExecutable> | |
</PropertyGroup> | |
<PropertyGroup Condition="'$(HasRuntimeOutput)' == ''"> | |
<HasRuntimeOutput>$(_IsExecutable)</HasRuntimeOutput> | |
<_UsingDefaultForHasRuntimeOutput>true</_UsingDefaultForHasRuntimeOutput> | |
</PropertyGroup> | |
<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.DefaultAssemblyInfo.targets" Condition="'$(UsingNETSdkDefaults)' == 'true'"/> | |
<!-- | |
Apply these defaults from Microsoft.Common.CurrentVersion.targets now since we're running before them, | |
but need to adjust them and/or make decisions in terms of them. | |
--> | |
<PropertyGroup> | |
<Configuration Condition="'$(Configuration)'==''">Debug</Configuration> | |
<Platform Condition="'$(Platform)'==''">AnyCPU</Platform> | |
<PlatformName Condition="'$(PlatformName)' == ''">$(Platform)</PlatformName> | |
</PropertyGroup> | |
<!-- Before any additional SDK targets are imported, import the publish profile. | |
This allows the publish profile to set properties like RuntimeIdentifier and them be | |
respected by the SDK. --> | |
<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.Sdk.ImportPublishProfile.targets" | |
Condition="'$(PublishProfileImported)' != 'true'"/> | |
<!-- | |
Expand TargetFramework to TargetFrameworkIdentifier and TargetFrameworkVersion, | |
and adjust intermediate and output paths to include it. | |
--> | |
<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.TargetFrameworkInference.targets" /> | |
<!-- Set default intermediate and output paths --> | |
<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.DefaultOutputPaths.targets" Condition="'$(UsingNETSdkDefaults)' == 'true'"/> | |
<!-- Related issue: https://github.com/dotnet/sdk/issues/12324--> | |
<PropertyGroup> | |
<!-- Import winfx targets when we're targeting .NETFramework and not importing the newer WindowsDesktop targets via `UseWPF`. --> | |
<ImportFrameworkWinFXTargets Condition="'$(ImportFrameworkWinFXTargets)' == '' and '$(UseWPF)' != 'true' and '$(TargetFrameworkIdentifier)' == '.NETFramework'">true</ImportFrameworkWinFXTargets> | |
<!-- Otherwise, don't import. --> | |
<ImportFrameworkWinFXTargets Condition="'$(ImportFrameworkWinFXTargets)' == ''">false</ImportFrameworkWinFXTargets> | |
</PropertyGroup> | |
<!-- | |
Import targets from RazorSDK if referenced | |
Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.BeforeCommon.targets | |
Sdks\Microsoft.NET.Sdk.Razor\targets\Microsoft.NET.Sdk.Razor.BeforeCommon.targets | |
--> | |
<Import Project="$(MSBuildThisFileDirectory)..\..\Microsoft.NET.Sdk.Razor\targets\Microsoft.NET.Sdk.Razor.BeforeCommon.targets" Condition="'$(UsingMicrosoftNETSdkRazor)' == 'true'" /> | |
<!-- Import workload targets --> | |
<Import Project="Microsoft.NET.Sdk.ImportWorkloads.targets" Condition="'$(MSBuildEnableWorkloadResolver)' == 'true'" /> | |
<!-- | |
Use RuntimeIdentifier to determine PlatformTarget. | |
Also, enforce that RuntimeIdentifier is always specified for .NETFramework executables. | |
--> | |
<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.RuntimeIdentifierInference.targets" /> | |
<!-- Checks for EOL frameworks --> | |
<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.EolTargetFrameworks.targets" /> | |
<!-- Check if the Target Framework is coreclr based --> | |
<PropertyGroup Condition="'$(_IsNETCoreOrNETStandard)' == ''"> | |
<_IsNETCoreOrNETStandard Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp'">true</_IsNETCoreOrNETStandard> | |
<_IsNETCoreOrNETStandard Condition="'$(TargetFrameworkIdentifier)' == '.NETStandard'">true</_IsNETCoreOrNETStandard> | |
</PropertyGroup> | |
<!-- Unification / automatic binding redirect logic --> | |
<PropertyGroup> | |
<DesignTimeAutoUnify Condition="'$(DesignTimeAutoUnify)' == ''">true</DesignTimeAutoUnify> | |
<AutoUnifyAssemblyReferences Condition="'$(AutoUnifyAssemblyReferences)' == '' and $(OutputType) == 'Library'">true</AutoUnifyAssemblyReferences> | |
<AutoUnifyAssemblyReferences Condition="'$(AutoUnifyAssemblyReferences)' == '' and '$(_IsNETCoreOrNETStandard)' == 'true'">true</AutoUnifyAssemblyReferences> | |
</PropertyGroup> | |
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework' and '$(HasRuntimeOutput)' == 'true'"> | |
<AutoGenerateBindingRedirects Condition="'$(AutoGenerateBindingRedirects)' == ''">true</AutoGenerateBindingRedirects> | |
</PropertyGroup> | |
<!-- Default settings for .NET Core and .NET Standard build logic --> | |
<PropertyGroup Condition="'$(_IsNETCoreOrNETStandard)' == 'true'"> | |
<GenerateDependencyFile Condition=" '$(GenerateDependencyFile)' == '' ">true</GenerateDependencyFile> | |
<!-- Assembly and file versions of runtime assets should be written to the deps.json by default, to support | |
runtime minor version roll-forward: https://github.com/dotnet/core-setup/issues/3546 --> | |
<IncludeFileVersionsInDependencyFile Condition="'$(IncludeFileVersionsInDependencyFile)' == ''">true</IncludeFileVersionsInDependencyFile> | |
<!-- Force .dll extension for .NETCoreApp and .NETStandard projects even if output type is exe. --> | |
<TargetExt Condition="'$(TargetExt)' == ''">.dll</TargetExt> | |
<!-- Disable the use of FrameworkPathOverride in Microsoft.Common.CurrentVersion.targets which can slow down evaluation. FrameworkPathOverride | |
is not needed for NETStandard or NETCore since references come from NuGet packages--> | |
<EnableFrameworkPathOverride Condition="'$(EnableFrameworkPathOverride)' == ''">false</EnableFrameworkPathOverride> | |
</PropertyGroup> | |
<!-- Regardless of platform, enable dependency file generation if PreserveCompilationContext is set. --> | |
<PropertyGroup> | |
<GenerateDependencyFile Condition="'$(GenerateDependencyFile)' == ''">$(PreserveCompilationContext)</GenerateDependencyFile> | |
</PropertyGroup> | |
<!-- Set PublishDir here, before Microsoft.Common.targets, to avoid a competing default there. | |
If using artifacts output path format, PublishDir is already set in Microsoft.NET.DefaultOutputPaths.targets --> | |
<PropertyGroup Condition="'$(UseArtifactsOutput)' != 'true'"> | |
<PublishDirName Condition="'$(PublishDirName)' == ''">publish</PublishDirName> | |
<!-- ensure the PublishDir is RID specific--> | |
<PublishDir Condition="'$(PublishDir)' == '' and | |
'$(AppendRuntimeIdentifierToOutputPath)' != 'true' and | |
'$(RuntimeIdentifier)' != '' and | |
'$(_UsingDefaultRuntimeIdentifier)' != 'true'">$(OutputPath)$(RuntimeIdentifier)\$(PublishDirName)\</PublishDir> | |
<PublishDir Condition="'$(PublishDir)' == ''">$(OutputPath)$(PublishDirName)\</PublishDir> | |
</PropertyGroup> | |
<!-- | |
Sets RestoreAdditionalProjectSources or RestoreAdditionalProjectFallbackFolders to the SDK Offline Cache based | |
on the TargetFramework. | |
--> | |
<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.NuGetOfflineCache.targets" /> | |
<ItemGroup Condition=" '$(DisableImplicitFrameworkReferences)' != 'true' and '$(TargetFrameworkIdentifier)' == '.NETFramework'"> | |
<_SDKImplicitReference Include="System"/> | |
<_SDKImplicitReference Include="System.Data"/> | |
<_SDKImplicitReference Include="System.Drawing"/> | |
<_SDKImplicitReference Include="System.Xml"/> | |
<!-- When doing greater than/less than comparisons between strings, MSBuild will try to parse the strings as Version objects and compare them as | |
such if the parse succeeds. --> | |
<!-- Framework assemblies introduced in .NET 3.5 --> | |
<_SDKImplicitReference Include="System.Core" Condition=" '$(_TargetFrameworkVersionWithoutV)' >= '3.5' "/> | |
<_SDKImplicitReference Include="System.Runtime.Serialization" Condition=" '$(_TargetFrameworkVersionWithoutV)' >= '3.5' "/> | |
<_SDKImplicitReference Include="System.Xml.Linq" Condition=" '$(_TargetFrameworkVersionWithoutV)' >= '3.5' "/> | |
<!-- Framework assemblies introduced in .NET 4.0 --> | |
<_SDKImplicitReference Include="System.Numerics" Condition=" '$(_TargetFrameworkVersionWithoutV)' >= '4.0' "/> | |
<!-- Framework assemblies introduced in .NET 4.5 --> | |
<_SDKImplicitReference Include="System.IO.Compression.FileSystem" Condition=" '$(_TargetFrameworkVersionWithoutV)' >= '4.5' "/> | |
<_SDKImplicitReference Update="@(_SDKImplicitReference)" | |
Pack="false" | |
IsImplicitlyDefined="true" /> | |
<!-- Don't duplicate any references that are explicit in the project file. This means that if you do want to include a framework assembly in your | |
NuGet package, you can just add the Reference to your project file. --> | |
<_SDKImplicitReference Remove="@(Reference)" /> | |
<!-- Add the implicit references to @(Reference) --> | |
<Reference Include="@(_SDKImplicitReference)" /> | |
</ItemGroup> | |
<PropertyGroup> | |
<!-- Prevent System.Core reference from being added separately (see Microsoft.NETFramework.CurrentVersion.props) --> | |
<AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences> | |
</PropertyGroup> | |
<PropertyGroup Condition="'$(DisableImplicitAssetTargetFallback)' != 'true' and '$(_IsNETCoreOrNETStandard)' == 'true' and '$(_TargetFrameworkVersionWithoutV)' >= '2.0'"> | |
<AssetTargetFallback>$(AssetTargetFallback);net461;net462;net47;net471;net472;net48;net481</AssetTargetFallback> | |
</PropertyGroup> | |
<!-- Add conditional compilation symbols for the target framework (for example NET461, NETSTANDARD2_0, NETCOREAPP1_0) --> | |
<PropertyGroup Condition=" '$(DisableImplicitFrameworkDefines)' != 'true' and '$(TargetFrameworkIdentifier)' != '.NETPortable' and '$(TargetFrameworkIdentifier)' != ''"> | |
<_FrameworkIdentifierForImplicitDefine>$(TargetFrameworkIdentifier.Replace('.', '').ToUpperInvariant())</_FrameworkIdentifierForImplicitDefine> | |
<_FrameworkIdentifierForImplicitDefine Condition=" '$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionGreaterThanOrEquals($(TargetFrameworkVersion), 5.0)) ">NET</_FrameworkIdentifierForImplicitDefine> | |
<VersionlessImplicitFrameworkDefine>$(_FrameworkIdentifierForImplicitDefine)</VersionlessImplicitFrameworkDefine> | |
<_FrameworkIdentifierForImplicitDefine Condition=" '$(TargetFrameworkIdentifier)' == '.NETFramework'">NET</_FrameworkIdentifierForImplicitDefine> | |
<_FrameworkVersionForImplicitDefine>$(TargetFrameworkVersion.TrimStart('vV'))</_FrameworkVersionForImplicitDefine> | |
<_FrameworkVersionForImplicitDefine>$(_FrameworkVersionForImplicitDefine.Replace('.', '_'))</_FrameworkVersionForImplicitDefine> | |
<_FrameworkVersionForImplicitDefine Condition=" '$(TargetFrameworkIdentifier)' == '.NETFramework'">$(_FrameworkVersionForImplicitDefine.Replace('_', ''))</_FrameworkVersionForImplicitDefine> | |
<ImplicitFrameworkDefine>$(_FrameworkIdentifierForImplicitDefine)$(_FrameworkVersionForImplicitDefine)</ImplicitFrameworkDefine> | |
<BackwardsCompatFrameworkDefine Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionGreaterThanOrEquals($(TargetFrameworkVersion), 5.0))">$(TargetFrameworkIdentifier.Replace('.', '').ToUpperInvariant())</BackwardsCompatFrameworkDefine> | |
</PropertyGroup> | |
<!-- Add conditional compilation symbols for the target platform (for example ANDROID, IOS, WINDOWS) --> | |
<Target Name="GenerateTargetPlatformDefineConstants" | |
Condition=" '$(DisableImplicitFrameworkDefines)' != 'true' and '$(TargetPlatformIdentifier)' != '' and '$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionGreaterThanOrEquals($(TargetFrameworkVersion), 5.0)) " > | |
<PropertyGroup> | |
<_PlatformIdentifierForImplicitDefine>$(TargetPlatformIdentifier.ToUpperInvariant())</_PlatformIdentifierForImplicitDefine> | |
<_PlatformVersionForImplicitDefine>$(TargetPlatformVersion.Replace('.', '_'))</_PlatformVersionForImplicitDefine> | |
</PropertyGroup> | |
<ItemGroup> | |
<_ImplicitDefineConstant Include="$(_PlatformIdentifierForImplicitDefine)" /> | |
<_ImplicitDefineConstant Include="$(_PlatformIdentifierForImplicitDefine)$(_PlatformVersionForImplicitDefine)" /> | |
</ItemGroup> | |
</Target> | |
<!-- Add OR_GREATER compilation symbols for target frameworks with .NET Framework, .NET Standard, .NET Core, and .NET --> | |
<Target Name="GenerateNETCompatibleDefineConstants" | |
Condition=" '$(DisableImplicitFrameworkDefines)' != 'true' and ('$(TargetFrameworkIdentifier)' == '.NETCoreApp' or '$(TargetFrameworkIdentifier)' == '.NETFramework' or '$(TargetFrameworkIdentifier)' == '.NETStandard')" > | |
<ItemGroup> | |
<_SupportedFrameworkVersions Include="@(SupportedNETCoreAppTargetFramework->'%(Identity)'->TrimStart('.NETCoreApp,Version=v'))" Condition=" '$(TargetFrameworkIdentifier)' == '.NETCoreApp' " /> | |
<_SupportedFrameworkVersions Include="@(SupportedNETFrameworkTargetFramework->'%(Identity)'->TrimStart('.NETFramework,Version=v'))" Condition=" '$(TargetFrameworkIdentifier)' == '.NETFramework' " /> | |
<_SupportedFrameworkVersions Include="@(SupportedNETStandardTargetFramework->'%(Identity)'->TrimStart('.NETStandard,Version=v'))" Condition=" '$(TargetFrameworkIdentifier)' == '.NETStandard' " /> | |
<_CompatibleFrameworkVersions Include="@(_SupportedFrameworkVersions)" Condition=" $([MSBuild]::VersionLessThanOrEquals(%(Identity), $(TargetFrameworkVersion))) " /> | |
<_FormattedCompatibleFrameworkVersions Include="@(_CompatibleFrameworkVersions)" Condition=" '$(TargetFrameworkIdentifier)' == '.NETCoreApp' or '$(TargetFrameworkIdentifier)' == '.NETStandard' " /> | |
<_FormattedCompatibleFrameworkVersions Include="@(_CompatibleFrameworkVersions->'%(Identity)'->Replace('.', ''))" Condition=" '$(TargetFrameworkIdentifier)' == '.NETFramework' " /> | |
<_ImplicitDefineConstant Include="@(_FormattedCompatibleFrameworkVersions->'$(_FrameworkIdentifierForImplicitDefine)%(Identity)_OR_GREATER'->Replace('.', '_'))" | |
Condition=" '$(TargetFrameworkIdentifier)' != '.NETCoreApp' or $([MSBuild]::VersionGreaterThanOrEquals(%(_FormattedCompatibleFrameworkVersions.Identity), 5.0)) " /> | |
<_ImplicitDefineConstant Include="@(_FormattedCompatibleFrameworkVersions->'NETCOREAPP%(Identity)_OR_GREATER'->Replace('.', '_'))" | |
Condition=" '$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionLessThan(%(_FormattedCompatibleFrameworkVersions.Identity), 5.0)) " /> | |
</ItemGroup> | |
</Target> | |
<!-- Add OR_GREATER compilation symbols for target platforms. --> | |
<Target Name="GeneratePlatformCompatibleDefineConstants" | |
Condition=" '$(DisableImplicitFrameworkDefines)' != 'true' and '$(TargetPlatformIdentifier)' != '' and '$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionGreaterThanOrEquals($(TargetFrameworkVersion), 5.0)) " > | |
<ItemGroup> | |
<_SupportedPlatformCompatibleVersions Include="@(SdkSupportedTargetPlatformVersion)" Condition=" %(Identity) != '' and $([MSBuild]::VersionLessThanOrEquals(%(Identity), $(TargetPlatformVersion))) " /> | |
<_ImplicitDefineConstant Include="@(_SupportedPlatformCompatibleVersions->Distinct()->'$(TargetPlatformIdentifier.ToUpper())%(Identity)_OR_GREATER'->Replace('.', '_'))" /> | |
</ItemGroup> | |
</Target> | |
<!-- Remove TRACE when DisableDiagnosticTracing is true --> | |
<Target Name="_DisableDiagnosticTracing" | |
Condition="'$(DisableDiagnosticTracing)' == 'true'" | |
DependsOnTargets="GenerateTargetPlatformDefineConstants;GenerateNETCompatibleDefineConstants;GeneratePlatformCompatibleDefineConstants" | |
BeforeTargets="CoreCompile"> | |
<ItemGroup> | |
<_DefineConstantsWithoutTrace Include="$(DefineConstants)" /> | |
<_DefineConstantsWithoutTrace Remove="TRACE"/> | |
</ItemGroup> | |
<PropertyGroup> | |
<DefineConstants>@(_DefineConstantsWithoutTrace)</DefineConstants> | |
</PropertyGroup> | |
</Target> | |
<!-- Add implicitly defined preprocessor symbols to DefineConstants --> | |
<Target Name="AddImplicitDefineConstants" | |
Condition=" '$(DisableImplicitFrameworkDefines)' != 'true' " | |
DependsOnTargets="GenerateTargetPlatformDefineConstants;GenerateNETCompatibleDefineConstants;GeneratePlatformCompatibleDefineConstants;_DisableDiagnosticTracing" | |
BeforeTargets="CoreCompile" > | |
<PropertyGroup> | |
<DefineConstants Condition=" '@(_ImplicitDefineConstant)' != '' " >$(DefineConstants);@(_ImplicitDefineConstant)</DefineConstants> | |
<FinalDefineConstants Condition=" '@(_ImplicitDefineConstant)' != '' and '$(Language)' == 'VB' " >$(FinalDefineConstants),@(_ImplicitDefineConstant->'%(Identity)=-1', ',')</FinalDefineConstants> | |
</PropertyGroup> | |
</Target> | |
<!-- Handle XML documentation file settings --> | |
<PropertyGroup Condition="'$(GenerateDocumentationFile)' == ''"> | |
<GenerateDocumentationFile Condition="'$(DocumentationFile)' == ''">false</GenerateDocumentationFile> | |
<GenerateDocumentationFile Condition="'$(DocumentationFile)' != ''">true</GenerateDocumentationFile> | |
</PropertyGroup> | |
<PropertyGroup Condition="'$(GenerateDocumentationFile)' == 'true' and '$(DocumentationFile)' == ''"> | |
<DocumentationFile Condition="'$(MSBuildProjectExtension)' == '.vbproj'">$(AssemblyName).xml</DocumentationFile> | |
<DocumentationFile Condition="'$(MSBuildProjectExtension)' != '.vbproj'">$(IntermediateOutputPath)$(AssemblyName).xml</DocumentationFile> | |
</PropertyGroup> | |
<PropertyGroup Condition="'$(GenerateDocumentationFile)' != 'true'"> | |
<DocumentationFile /> | |
</PropertyGroup> | |
<PropertyGroup> | |
<PublishDocumentationFiles Condition="'$(PublishDocumentationFiles)' == ''">true</PublishDocumentationFiles> | |
<PublishDocumentationFile Condition="'$(PublishDocumentationFile)' == '' and '$(PublishDocumentationFiles)' == 'true'">true</PublishDocumentationFile> | |
<PublishReferencesDocumentationFiles Condition="'$(PublishReferencesDocumentationFiles)' == '' and '$(PublishDocumentationFiles)' == 'true'">true</PublishReferencesDocumentationFiles> | |
</PropertyGroup> | |
<!-- Add a project capability so that the project properties in the IDE can show the option to generate an XML documentation file without specifying the filename --> | |
<ItemGroup> | |
<ProjectCapability Include="GenerateDocumentationFile" /> | |
</ItemGroup> | |
<PropertyGroup> | |
<IsNetCoreAppTargetingLatestTFM Condition="'$(IsNetCoreAppTargetingLatestTFM)' == '' and '$(TargetFrameworkIdentifier)' == '.NETCoreApp' and '$(_TargetFrameworkVersionWithoutV)' == '$(NETCoreAppMaximumVersion)'">true</IsNetCoreAppTargetingLatestTFM> | |
</PropertyGroup> | |
</Project> | |