Skip to content

Instantly share code, notes, and snippets.

@davkean
Created March 7, 2018 00:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davkean/82433b1dc39b500e222a592180618290 to your computer and use it in GitHub Desktop.
Save davkean/82433b1dc39b500e222a592180618290 to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="IBM437"?>
<!--
============================================================================================================================================
E:\vspreviewcrash\dotnet\lib\Http\HttpFree.fsproj
============================================================================================================================================
-->
<Project>
<!--
============================================================================================================================================
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk">
This import was added implicitly because the Project element's Sdk attribute specified "Microsoft.NET.Sdk".
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\Sdk\Sdk.props
============================================================================================================================================
-->
<!--
***********************************************************************************************
Sdk.props
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.
***********************************************************************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<!--
Indicate to other targets that Microsoft.NET.Sdk is being used.
This must be set here (as early as possible, before Microsoft.Common.props)
so that everything that follows can depend on it.
In particular, Directory.Build.props and nuget package props need to be able
to use this flag and they are imported by Microsoft.Common.props.
-->
<UsingMicrosoftNETSdk>true</UsingMicrosoftNETSdk>
</PropertyGroup>
<!--
============================================================================================================================================
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props">
C:\Program Files (x86)\Microsoft Visual Studio\Preview\Enterprise\MSBuild\15.0\Microsoft.Common.props
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.Common.props
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) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportByWildcardBeforeMicrosoftCommonProps Condition="'$(ImportByWildcardBeforeMicrosoftCommonProps)' == ''">true</ImportByWildcardBeforeMicrosoftCommonProps>
<ImportByWildcardAfterMicrosoftCommonProps Condition="'$(ImportByWildcardAfterMicrosoftCommonProps)' == ''">true</ImportByWildcardAfterMicrosoftCommonProps>
<ImportUserLocationsByWildcardBeforeMicrosoftCommonProps Condition="'$(ImportUserLocationsByWildcardBeforeMicrosoftCommonProps)' == ''">true</ImportUserLocationsByWildcardBeforeMicrosoftCommonProps>
<ImportUserLocationsByWildcardAfterMicrosoftCommonProps Condition="'$(ImportUserLocationsByWildcardAfterMicrosoftCommonProps)' == ''">true</ImportUserLocationsByWildcardAfterMicrosoftCommonProps>
<ImportDirectoryBuildProps Condition="'$(ImportDirectoryBuildProps)' == ''">true</ImportDirectoryBuildProps>
</PropertyGroup>
<!--
Determine the path to the directory build props file if the user did not disable $(ImportDirectoryBuildProps) and
they did not already specify an absolute path to use via $(DirectoryBuildPropsPath)
-->
<PropertyGroup Condition="'$(ImportDirectoryBuildProps)' == 'true' and '$(DirectoryBuildPropsPath)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<_DirectoryBuildPropsFile Condition="'$(_DirectoryBuildPropsFile)' == ''">Directory.Build.props</_DirectoryBuildPropsFile>
<_DirectoryBuildPropsBasePath Condition="'$(_DirectoryBuildPropsBasePath)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), '$(_DirectoryBuildPropsFile)'))</_DirectoryBuildPropsBasePath>
<DirectoryBuildPropsPath Condition="'$(_DirectoryBuildPropsBasePath)' != '' and '$(_DirectoryBuildPropsFile)' != ''">$([System.IO.Path]::Combine('$(_DirectoryBuildPropsBasePath)', '$(_DirectoryBuildPropsFile)'))</DirectoryBuildPropsPath>
</PropertyGroup>
<PropertyGroup Condition="'$(ImportDirectoryBuildProps)' == 'true' and exists('$(DirectoryBuildPropsPath)')" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(DirectoryBuildPropsPath)</MSBuildAllProjects>
</PropertyGroup>
<!--<Import Project="$(DirectoryBuildPropsPath)" Condition="'$(ImportDirectoryBuildProps)' == 'true' and exists('$(DirectoryBuildPropsPath)')" />-->
<!--
Prepare to import project extensions which usually come from packages. Package management systems will create a file at:
$(MSBuildProjectExtensionsPath)\$(MSBuildProjectFile).<SomethingUnique>.props
Each package management system should use a unique moniker to avoid collisions. It is a wild-card import so the package
management system can write out multiple files but the order of the import is alphabetic because MSBuild sorts the list.
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
The declaration of $(BaseIntermediateOutputPath) had to be moved up from Microsoft.Common.CurrentVersion.targets
in order for the $(MSBuildProjectExtensionsPath) to use it as a default.
-->
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">obj\</BaseIntermediateOutputPath>
<BaseIntermediateOutputPath Condition="!HasTrailingSlash('$(BaseIntermediateOutputPath)')">$(BaseIntermediateOutputPath)\</BaseIntermediateOutputPath>
<MSBuildProjectExtensionsPath Condition="'$(MSBuildProjectExtensionsPath)' == '' ">$(BaseIntermediateOutputPath)</MSBuildProjectExtensionsPath>
<!--
Import paths that are relative default to be relative to the importing file. However, since MSBuildExtensionsPath
defaults to BaseIntermediateOutputPath we expect it to be relative to the project directory. So if the path is relative
it needs to be made absolute based on the project directory.
-->
<MSBuildProjectExtensionsPath Condition="'$([System.IO.Path]::IsPathRooted($(MSBuildProjectExtensionsPath)))' == 'false'">$([System.IO.Path]::Combine('$(MSBuildProjectDirectory)', '$(MSBuildProjectExtensionsPath)'))</MSBuildProjectExtensionsPath>
<MSBuildProjectExtensionsPath Condition="!HasTrailingSlash('$(MSBuildProjectExtensionsPath)')">$(MSBuildProjectExtensionsPath)\</MSBuildProjectExtensionsPath>
<ImportProjectExtensionProps Condition="'$(ImportProjectExtensionProps)' == ''">true</ImportProjectExtensionProps>
</PropertyGroup>
<!--
============================================================================================================================================
<Import Project="$(MSBuildProjectExtensionsPath)$(MSBuildProjectFile).*.props" Condition="'$(ImportProjectExtensionProps)' == 'true' and exists('$(MSBuildProjectExtensionsPath)')">
E:\vspreviewcrash\dotnet\lib\Http\obj\HttpFree.fsproj.nuget.g.props
============================================================================================================================================
-->
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">E:\vspreviewcrash\dotnet\lib\Http\obj\project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\davkean\.nuget\packages\;C:\Program Files (x86)\Microsoft SDKs\NuGetPackagesFallback\;C:\Program Files\dotnet\sdk\NuGetFallbackFolder</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">4.6.0</NuGetToolVersion>
</PropertyGroup>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<!--<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">-->
<!--
============================================================================================================================================
<Import Project="$(NuGetPackageRoot)fsharp.compiler.tools\4.1.29\build\FSharp.Compiler.Tools.props" Condition="Exists('$(NuGetPackageRoot)fsharp.compiler.tools\4.1.29\build\FSharp.Compiler.Tools.props')">
C:\Users\davkean\.nuget\packages\fsharp.compiler.tools\4.1.29\build\FSharp.Compiler.Tools.props
============================================================================================================================================
-->
<!--
***********************************************************************************************
FSharp.Compiler.Tools.props
WARNING: You CAN MODIFY this file, doesnt matter if you are not knowledgeable about MSBuild and
without 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.
Just remove FSharp.Compiler.Tools package from nuget cache and re-restore.
***********************************************************************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- specific netcoreapp1.0 fsc -->
<_FscTaskAssemblyPath_netcoreapp1_0>$(MSBuildThisFileDirectory)netcoreapp1.0/FSharp.Build.dll</_FscTaskAssemblyPath_netcoreapp1_0>
<_FscToolFullPath_netcoreapp1_0>$(MSBuildThisFileDirectory)netcoreapp1.0/fsc.dll</_FscToolFullPath_netcoreapp1_0>
<!-- specific .NET Framework fsc -->
<_FscTaskAssemblyPath_net>$(MSBuildThisFileDirectory)../tools/FSharp.Build.dll</_FscTaskAssemblyPath_net>
<_FscToolFullPath_net>$(MSBuildThisFileDirectory)../tools/fsc.exe</_FscToolFullPath_net>
</PropertyGroup>
<!-- ref https://github.com/dotnet/standard/blob/master/Microsoft.Packaging.Tools/tasks/targets/Microsoft.Packaging.Tools.targets#L12 -->
<!-- Condition here is a hack until https://github.com/dotnet/sdk/issues/534 is fixed -->
<PropertyGroup Condition="'$(TargetFramework)' == '' and '$(TargetFrameworks)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- when using the old SDK, override FSharpTargetsPath and PortableFSharpTargetsPath -->
<FSharpTargetsPath>$(MSBuildThisFileDirectory)../tools/Microsoft.FSharp.Targets</FSharpTargetsPath>
<PortableFSharpTargetsPath>$(MSBuildThisFileDirectory)../tools/Microsoft.Portable.FSharp.Targets</PortableFSharpTargetsPath>
</PropertyGroup>
<Choose xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<When Condition="'$(MSBuildRuntimeType)' == 'Core'">
<PropertyGroup>
<FscTaskAssemblyPath>$(_FscTaskAssemblyPath_netcoreapp1_0)</FscTaskAssemblyPath>
<FscToolPath>$(MSBuildThisFileDirectory)netcoreapp1.0</FscToolPath>
<FscToolExe>fsc.dll</FscToolExe>
<FscToolFullPath>$(_FscToolFullPath_netcoreapp1_0)</FscToolFullPath>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup>
<FscTaskAssemblyPath>$(_FscTaskAssemblyPath_net)</FscTaskAssemblyPath>
<FscToolPath>$(MSBuildThisFileDirectory)../tools</FscToolPath>
<FscToolExe>fsc.exe</FscToolExe>
<FscToolFullPath>$(_FscToolFullPath_net)</FscToolFullPath>
</PropertyGroup>
</Otherwise>
</Choose>
<!--
============================================================================================================================================
</Import>
E:\vspreviewcrash\dotnet\lib\Http\obj\HttpFree.fsproj.nuget.g.props
============================================================================================================================================
-->
<!--
============================================================================================================================================
<Import Project="$(NuGetPackageRoot)fsharp.net.sdk\1.0.5\build\FSharp.NET.Sdk.props" Condition="Exists('$(NuGetPackageRoot)fsharp.net.sdk\1.0.5\build\FSharp.NET.Sdk.props')">
C:\Users\davkean\.nuget\packages\fsharp.net.sdk\1.0.5\build\FSharp.NET.Sdk.props
============================================================================================================================================
-->
<!--
***********************************************************************************************
FSharp.NET.Sdk.props
WARNING: You CAN MODIFY this file, doesnt matter if you are not knowledgeable about MSBuild and
without 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.
Just remove FSharp.NET.Sdk package from nuget cache and re-restore.
***********************************************************************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<WarningLevel>4</WarningLevel>
<!-- disable wilcard include of Compile items, file ordering is a feature -->
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
<!-- project guid used by dotnet sln add -->
<DefaultProjectTypeGuid Condition=" '$(DefaultProjectTypeGuid)' == '' ">{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}</DefaultProjectTypeGuid>
<FSharpLanguageTargets>$(MSBuildThisFileDirectory)\FSharp.NET.Current.Sdk.targets</FSharpLanguageTargets>
</PropertyGroup>
<!--
============================================================================================================================================
</Import>
E:\vspreviewcrash\dotnet\lib\Http\obj\HttpFree.fsproj.nuget.g.props
============================================================================================================================================
-->
<!--</ImportGroup>-->
<!--
============================================================================================================================================
</Import>
============================================================================================================================================
-->
<!--
============================================================================================================================================
<Import Project="$(MSBuildProjectExtensionsPath)$(MSBuildProjectFile).*.props" Condition="'$(ImportProjectExtensionProps)' == 'true' and exists('$(MSBuildProjectExtensionsPath)')">
E:\vspreviewcrash\dotnet\lib\Http\obj\HttpFree.fsproj.paket.props
============================================================================================================================================
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<!-- <RestoreSuccess>False</RestoreSuccess> -->
</PropertyGroup>
<!--
============================================================================================================================================
</Import>
C:\Program Files (x86)\Microsoft Visual Studio\Preview\Enterprise\MSBuild\15.0\Microsoft.Common.props
============================================================================================================================================
-->
<!--
Import wildcard "ImportBefore" props files if we're actually in a 12.0+ project (rather than a project being
treated as 4.0)
-->
<!--<ImportGroup Condition="'$(MSBuildAssemblyVersion)' != ''">-->
<!--
Wildcard imports come from $(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props.d folder.
This is very similar to the same extension point used in Microsoft.Common.targets, which is located in
the $(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.targets\ directory. Unfortunately, there
is already a file named "Microsoft.Common.props" in this directory so we have to have a slightly different
directory name to hold extensions.
-->
<!--<Import Project="$(MSBuildUserExtensionsPath)\$(MSBuildToolsVersion)\Imports\Microsoft.Common.props\ImportBefore\*" Condition="'$(ImportUserLocationsByWildcardBeforeMicrosoftCommonProps)' == 'true' and exists('$(MSBuildUserExtensionsPath)\$(MSBuildToolsVersion)\Imports\Microsoft.Common.props\ImportBefore')" />-->
<!--
============================================================================================================================================
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Imports\Microsoft.Common.props\ImportBefore\*" Condition="'$(ImportByWildcardBeforeMicrosoftCommonProps)' == 'true' and exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Imports\Microsoft.Common.props\ImportBefore')">
C:\Program Files (x86)\Microsoft Visual Studio\Preview\Enterprise\MSBuild\15.0\Imports\Microsoft.Common.props\ImportBefore\Microsoft.NuGet.ImportBefore.props
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NuGet.ImportBefore.props
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.
***********************************************************************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<NuGetProps Condition="'$(NuGetProps)'==''">$(MSBuildExtensionsPath)\Microsoft\NuGet\$(VisualStudioVersion)\Microsoft.NuGet.props</NuGetProps>
</PropertyGroup>
<!--
============================================================================================================================================
<Import Project="$(NuGetProps)" Condition="Exists('$(NuGetProps)') and '$(SkipImportNuGetProps)' != 'true'">
C:\Program Files (x86)\Microsoft Visual Studio\Preview\Enterprise\MSBuild\Microsoft\NuGet\15.0\Microsoft.NuGet.props
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NuGet.props
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.
***********************************************************************************************
-->
<!--<Import Project="$(MSBuildProjectDirectory)\$(MSBuildProjectName).nuget.props" Condition="Exists('$(MSBuildProjectDirectory)\$(MSBuildProjectName).nuget.props') AND '$(IncludeNuGetImports)' != 'false'" />-->
<!--
============================================================================================================================================
</Import>
C:\Program Files (x86)\Microsoft Visual Studio\Preview\Enterprise\MSBuild\15.0\Imports\Microsoft.Common.props\ImportBefore\Microsoft.NuGet.ImportBefore.props
============================================================================================================================================
-->
<!--
============================================================================================================================================
</Import>
C:\Program Files (x86)\Microsoft Visual Studio\Preview\Enterprise\MSBuild\15.0\Microsoft.Common.props
============================================================================================================================================
-->
<!--</ImportGroup>-->
<!--
In VS 2010 SP1 and VS 2012, both supported for asset compatibility, the MSBuild installed
as part of them did not enforce using the local ToolsVersion (4.0) in all cases, but instead
just used whatever ToolsVersion was in the project file if it existed on the machine, and
only forced 4.0 if that ToolsVersion did not exist.
Moving forward, we do want to enforce a single acting ToolsVersion per version of Visual Studio,
but in order to approximate this behavior on VS 2010 SP1 and VS 2012 as well, we've redirected
the targets: If we're building using 4.X MSBuild (which doesn't define the new reserved
property, MSBuildAssemblyVersion), we'll point right back at the 4.0 targets, which still exist
as part of the .NET Framework. Only if we're using the new MSBuild will we point to the current
targets.
-->
<PropertyGroup Condition="'$(MSBuildAssemblyVersion)' == '' and ('$(VisualStudioVersion)' != '' and '$(VisualStudioVersion)' &gt;= '12.0')" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
Reset VisualStudioVersion if it's 12.0+: Should be 10.0 if VS 2010 is installed or 11.0 otherwise,
but since we don't have a good way of telling whether VS 2010 is installed, make it 11.0 if
VS 2012 is installed or 10.0 otherwise. The reset should be safe because if it was already
set to something (e.g. 11.0 in a VS 2012 command prompt) then MSBuild's internal
VisualStudioVersion-defaulting code should never come into the picture, so the only way it could
be 12.0+ when building a TV 12.0 project (because we're in this file) using MSBuild 4.5 (because
MSBuildAssemblyVersion hasn't been set) is if it's a TV 12.0 project on an empty command prompt.
-->
<VisualStudioVersion Condition="Exists('$(MSBuildExtensionsPath)\4.0\Microsoft.Common.props')">11.0</VisualStudioVersion>
<VisualStudioVersion Condition="!Exists('$(MSBuildExtensionsPath)\4.0\Microsoft.Common.props')">10.0</VisualStudioVersion>
</PropertyGroup>
<!-- If building using 4.X MSBuild, we want to act like this project is TV 4.0, so override
the custom extensibility target locations with the hard-coded 4.0 equivalent. -->
<PropertyGroup Condition="'$(MSBuildAssemblyVersion)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<CustomBeforeMicrosoftCommonProps Condition="'$(CustomBeforeMicrosoftCommonProps)'==''">$(MSBuildExtensionsPath)\v4.0\Custom.Before.$(MSBuildThisFile)</CustomBeforeMicrosoftCommonProps>
<CustomAfterMicrosoftCommonProps Condition="'$(CustomAfterMicrosoftCommonProps)'==''">$(MSBuildExtensionsPath)\v4.0\Custom.After.$(MSBuildThisFile)</CustomAfterMicrosoftCommonProps>
</PropertyGroup>
<!-- If building using 4.X MSBuild, we want to act like this project is TV 4.0, so import
Microsoft.Common.props from the 4.0 location, and make sure everything else in here is
set up such that if it's defaulted to something there, it won't be overridden here. -->
<!--<Import Project="$(MSBuildExtensionsPath)\4.0\Microsoft.Common.props" Condition="'$(MSBuildAssemblyVersion)' == '' and Exists('$(MSBuildExtensionsPath)\4.0\Microsoft.Common.props')" />-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<CustomBeforeMicrosoftCommonProps Condition="'$(CustomBeforeMicrosoftCommonProps)'==''">$(MSBuildExtensionsPath)\v$(MSBuildToolsVersion)\Custom.Before.$(MSBuildThisFile)</CustomBeforeMicrosoftCommonProps>
<CustomAfterMicrosoftCommonProps Condition="'$(CustomAfterMicrosoftCommonProps)'==''">$(MSBuildExtensionsPath)\v$(MSBuildToolsVersion)\Custom.After.$(MSBuildThisFile)</CustomAfterMicrosoftCommonProps>
</PropertyGroup>
<!--
Only import the extension targets if we're actually in a 12.0 project here (rather than one we're attempting
to treat as 4.0) OR if the Dev11 Microsoft.Common.props don't exist. If it's a 12.0 project we're redirecting
to 4.0 and the Dev11 Microsoft.Common.props do exist, the extension targets will have been imported already
so there's no need to import them twice.
-->
<!--<Import Project="$(CustomBeforeMicrosoftCommonProps)" Condition="'$(CustomBeforeMicrosoftCommonProps)' != '' and Exists('$(CustomBeforeMicrosoftCommonProps)') and ('$(MSBuildAssemblyVersion)' != '' or !Exists('$(MSBuildExtensionsPath)\4.0\Microsoft.Common.props'))" />-->
<!-- This is used to determine whether Microsoft.Common.targets needs to import
Microsoft.Common.props itself, or whether it has been imported previously,
e.g. by the project itself. -->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MicrosoftCommonPropsHasBeenImported>true</MicrosoftCommonPropsHasBeenImported>
</PropertyGroup>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Configuration Condition=" '$(Configuration)' == '' and '$(DefaultProjectConfiguration)' != '' ">$(DefaultProjectConfiguration)</Configuration>
<Platform Condition=" '$(Platform)' == '' and '$(DefaultProjectPlatform)' != '' ">$(DefaultProjectPlatform)</Platform>
</PropertyGroup>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<WMSJSProject Condition="'$(WMSJSProject)' == ''">WJProject</WMSJSProject>
<WMSJSProjectDirectory Condition="'$(WMSJSProjectDirectory)' == ''">JavaScript</WMSJSProjectDirectory>
</PropertyGroup>
<!--<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.VisualStudioVersion.v*.Common.props" Condition="'$(VisualStudioVersion)' == ''" />-->
<!--
Only import the extension targets if we're actually in a 12.0 project here (rather than one we're attempting
to treat as 4.0) OR if the Dev11 Microsoft.Common.props don't exist. If it's a 12.0 project we're redirecting
to 4.0 and the Dev11 Microsoft.Common.props do exist, the extension targets will have been imported already
so there's no need to import them twice.
-->
<!--<Import Project="$(CustomAfterMicrosoftCommonProps)" Condition="'$(CustomAfterMicrosoftCommonProps)' != '' and Exists('$(CustomAfterMicrosoftCommonProps)') and ('$(MSBuildAssemblyVersion)' != '' or !Exists('$(MSBuildExtensionsPath)\4.0\Microsoft.Common.props'))" />-->
<!--
Import wildcard "ImportAfter" props files if we're actually in a 12.0+ project (rather than a project being
treated as 4.0)
-->
<!--<ImportGroup Condition="'$(MSBuildAssemblyVersion)' != ''">-->
<!--<Import Project="$(MSBuildUserExtensionsPath)\$(MSBuildToolsVersion)\Imports\Microsoft.Common.props\ImportAfter\*" Condition="'$(ImportUserLocationsByWildcardAfterMicrosoftCommonProps)' == 'true' and exists('$(MSBuildUserExtensionsPath)\$(MSBuildToolsVersion)\Imports\Microsoft.Common.props\ImportAfter')" />-->
<!--<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Imports\Microsoft.Common.props\ImportAfter\*" Condition="'$(ImportByWildcardAfterMicrosoftCommonProps)' == 'true' and exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Imports\Microsoft.Common.props\ImportAfter')" />-->
<!--</ImportGroup>-->
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\Sdk\Sdk.props
============================================================================================================================================
-->
<!--
============================================================================================================================================
<Import Project="$(MSBuildThisFileDirectory)..\build\Microsoft.NET.Sdk.props">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.props
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NET.Sdk.props
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.
***********************************************************************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<!-- This property disables the conflict resolution logic from the Microsoft.Packaging.Tools package, which is superceded by the logic here in the SDK -->
<DisableHandlePackageFileConflicts>true</DisableHandlePackageFileConflicts>
</PropertyGroup>
<!-- Default configuration and platform to Debug|AnyCPU-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Configurations Condition=" '$(Configurations)' == '' ">Debug;Release</Configurations>
<Platforms Condition=" '$(Platforms)' == '' ">AnyCPU</Platforms>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
</PropertyGroup>
<!-- User-facing configuration-agnostic defaults -->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<OutputType Condition=" '$(OutputType)' == '' ">Library</OutputType>
<FileAlignment Condition=" '$(FileAlignment)' == '' ">512</FileAlignment>
<ErrorReport Condition=" '$(ErrorReport)' == '' ">prompt</ErrorReport>
<AssemblyName Condition=" '$(AssemblyName)' == '' ">$(MSBuildProjectName)</AssemblyName>
<RootNamespace Condition=" '$(RootNamespace)' == '' ">$(MSBuildProjectName)</RootNamespace>
<Deterministic Condition=" '$(Deterministic)' == '' ">true</Deterministic>
</PropertyGroup>
<!-- User-facing configuration-specific defaults -->
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<DebugSymbols Condition=" '$(DebugSymbols)' == '' ">true</DebugSymbols>
<Optimize Condition=" '$(Optimize)' == '' ">false</Optimize>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Optimize Condition=" '$(Optimize)' == '' ">true</Optimize>
</PropertyGroup>
<!-- User-facing platform-specific defaults -->
<!--
NOTE:
* We cannot compare against $(Platform) directly as that will give VS cause to instantiate extra
configurations, for each combination, which leads to performance problems and clutter in the sln
in the common AnyCPU-only case.
* We cannot just set $(PlatformTarget) to $(Platform) here because $(Platform) can be set to anything
at the solution level, but there are a fixed set valid $(PlatformTarget) values that can be passed
to the compiler. It is up to the user to explicitly set PlatformTarget to non-AnyCPU (if desired)
outside the 1:1 defaults below.
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<_PlatformWithoutConfigurationInference>$(Platform)</_PlatformWithoutConfigurationInference>
</PropertyGroup>
<PropertyGroup Condition=" '$(_PlatformWithoutConfigurationInference)' == 'x64' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PlatformTarget Condition=" '$(PlatformTarget)' == '' ">x64</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(_PlatformWithoutConfigurationInference)' == 'x86' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PlatformTarget Condition=" '$(PlatformTarget)' == '' ">x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(_PlatformWithoutConfigurationInference)' == 'ARM' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PlatformTarget Condition=" '$(PlatformTarget)' == '' ">ARM</PlatformTarget>
</PropertyGroup>
<!-- Default settings for all projects built with this Sdk package -->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<DebugType Condition=" '$(DebugType)' == '' ">portable</DebugType>
<!-- This will turn off the base UWP-specific 'ResolveNuGetPackages' target -->
<ResolveNuGetPackages>false</ResolveNuGetPackages>
<!-- Skip import of Microsoft.NuGet.props and Microsoft.NuGet.targets -->
<SkipImportNuGetProps>true</SkipImportNuGetProps>
<SkipImportNuGetBuildTargets>true</SkipImportNuGetBuildTargets>
<!-- NuGet should always restore .NET SDK projects with "PackageReference" style restore. Setting this property will
cause the right thing to happen even if there aren't any PackageReference items in the project, such as when
a project targets .NET Framework and doesn't have any direct package dependencies. -->
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
<!-- Exclude GAC, registry, output directory from search paths. -->
<AssemblySearchPaths Condition=" '$(AssemblySearchPaths)' == '' ">{CandidateAssemblyFiles};{HintPathFromItem};{TargetFrameworkDirectory};{RawFileName}</AssemblySearchPaths>
<DesignTimeAssemblySearchPaths Condition=" '$(DesignTimeAssemblySearchPaths)' == '' ">$(AssemblySearchPaths)</DesignTimeAssemblySearchPaths>
<AllowUnsafeBlocks Condition="'$(AllowUnsafeBlocks)'==''">false</AllowUnsafeBlocks>
<TreatWarningsAsErrors Condition="'$(TreatWarningsAsErrors)'==''">false</TreatWarningsAsErrors>
<Prefer32Bit Condition="'$(Prefer32Bit)'==''">false</Prefer32Bit>
<SignAssembly Condition="'$(SignAssembly)'==''">false</SignAssembly>
<DelaySign Condition="'$(DelaySign)'==''">false</DelaySign>
<GeneratePackageOnBuild Condition="'$(GeneratePackageOnBuild)'==''">false</GeneratePackageOnBuild>
<PackageRequireLicenseAcceptance Condition="'$(PackageRequireLicenseAcceptance)'==''">false</PackageRequireLicenseAcceptance>
<DebugSymbols Condition="'$(DebugSymbols)'==''">false</DebugSymbols>
<CheckForOverflowUnderflow Condition="'$(CheckForOverflowUnderflow)'==''">false</CheckForOverflowUnderflow>
<!-- Uncomment this once https://github.com/Microsoft/visualfsharp/issues/3207 gets fixed -->
<!-- <WarningsAsErrors Condition=" '$(WarningsAsErrors)' == '' ">NU1605</WarningsAsErrors> -->
</PropertyGroup>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Path to project that the .NET CLI will build in order to generate deps.json files for .NET CLI tools -->
<ToolDepsJsonGeneratorProject>$(MSBuildThisFileDirectory)GenerateDeps\GenerateDeps.proj</ToolDepsJsonGeneratorProject>
</PropertyGroup>
<!-- Default item includes (globs and implicit references) -->
<!--
============================================================================================================================================
<Import Project="Microsoft.NET.Sdk.DefaultItems.props">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.DefaultItems.props
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NET.Sdk.DefaultItems.props
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.
***********************************************************************************************
-->
<PropertyGroup Condition="'$(NETCoreSdkBundledVersionsProps)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<NETCoreSdkBundledVersionsProps>$(MSBuildThisFileDirectory)..\..\..\Microsoft.NETCoreSdk.BundledVersions.props</NETCoreSdkBundledVersionsProps>
</PropertyGroup>
<!--
============================================================================================================================================
<Import Project="$(NETCoreSdkBundledVersionsProps)" Condition="Exists('$(NETCoreSdkBundledVersionsProps)')">
C:\Program Files\dotnet\sdk\2.1.100\Microsoft.NETCoreSdk.BundledVersions.props
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NETCoreSdk.BundledVersions.props
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.
***********************************************************************************************
-->
<PropertyGroup>
<BundledNETCoreAppTargetFrameworkVersion>2.0</BundledNETCoreAppTargetFrameworkVersion>
<BundledNETCoreAppPackageVersion>2.0.5</BundledNETCoreAppPackageVersion>
<BundledNETStandardTargetFrameworkVersion>2.0</BundledNETStandardTargetFrameworkVersion>
<BundledNETStandardPackageVersion>2.0.1</BundledNETStandardPackageVersion>
</PropertyGroup>
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.DefaultItems.props
============================================================================================================================================
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<ItemGroup Condition=" '$(EnableDefaultItems)' == 'true' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Compile Include="**/*$(DefaultLanguageSourceExtension)" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" Condition=" '$(EnableDefaultCompileItems)' == 'true' " />
<EmbeddedResource Include="**/*.resx" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" Condition=" '$(EnableDefaultEmbeddedResourceItems)' == 'true' " />
</ItemGroup>
<ItemGroup Condition=" '$(EnableDefaultItems)' == 'true' And '$(EnableDefaultNoneItems)' == 'true' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<None Include="**/*" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)" />
<None Remove="**/*$(DefaultLanguageSourceExtension)" Condition=" '$(EnableDefaultCompileItems)' == 'true' " />
<None Remove="**/*.resx" Condition=" '$(EnableDefaultEmbeddedResourceItems)' == 'true' " />
</ItemGroup>
<!-- Automatically reference NETStandard.Library or Microsoft.NETCore.App package if targeting the corresponding target framework.
We can refer here in the .props file to properties set in the .targets files because items and their conditions are
evaluated in the second pass of evaluation, after all properties have been evaluated. -->
<ItemGroup Condition=" '$(DisableImplicitFrameworkReferences)' != 'true' and '$(TargetFrameworkIdentifier)' == '.NETStandard'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PackageReference Include="NETStandard.Library" Version="$(NETStandardImplicitPackageVersion)" IsImplicitlyDefined="true" />
<!-- If targeting .NET Standard 2.0 or higher, then don't include a dependency on NETStandard.Library in the package produced by pack -->
<PackageReference Update="NETStandard.Library" Condition=" ('$(_TargetFrameworkVersionWithoutV)' != '') And ('$(_TargetFrameworkVersionWithoutV)' &gt;= '2.0') " PrivateAssets="All" Publish="true" />
</ItemGroup>
<ItemGroup Condition=" '$(DisableImplicitFrameworkReferences)' != 'true' and '$(TargetFrameworkIdentifier)' == '.NETCoreApp'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PackageReference Include="Microsoft.NETCore.App" Version="$(RuntimeFrameworkVersion)" IsImplicitlyDefined="true" />
<!-- For libraries targeting .NET Core 2.0 or higher, don't include a dependency on Microsoft.NETCore.App in the package produced by pack.
Packing an app (for example a .NET CLI tool) should include the Microsoft.NETCore.App package dependency. -->
<PackageReference Update="Microsoft.NETCore.App" Condition="('$(OutputType)' != 'Exe') And ('$(_TargetFrameworkVersionWithoutV)' != '') And ('$(_TargetFrameworkVersionWithoutV)' &gt;= '2.0')" PrivateAssets="All" Publish="true" />
</ItemGroup>
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.props
============================================================================================================================================
-->
<!-- List of supported .NET Core and .NET Standard TFMs -->
<!--
============================================================================================================================================
<Import Project="Microsoft.NET.SupportedTargetFrameworks.props">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.SupportedTargetFrameworks.props
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NET.SupportedTargetFrameworks.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.
***********************************************************************************************
-->
<!-- This file contains a list of the TFMs that are supported by this SDK for .NET Core and .NET Standard.
This is used by VS to show the list of frameworks to which projects can be retargeted. -->
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<!-- .NET Core -->
<ItemGroup>
<SupportedTargetFramework Include=".NETCoreApp,Version=v1.0" DisplayName=".NET Core 1.0" />
<SupportedTargetFramework Include=".NETCoreApp,Version=v1.1" DisplayName=".NET Core 1.1" />
<SupportedTargetFramework Include=".NETCoreApp,Version=v2.0" DisplayName=".NET Core 2.0" />
</ItemGroup>
<!-- .NET Standard -->
<ItemGroup>
<SupportedTargetFramework Include=".NETStandard,Version=v1.0" DisplayName=".NET Standard 1.0" />
<SupportedTargetFramework Include=".NETStandard,Version=v1.1" DisplayName=".NET Standard 1.1" />
<SupportedTargetFramework Include=".NETStandard,Version=v1.2" DisplayName=".NET Standard 1.2" />
<SupportedTargetFramework Include=".NETStandard,Version=v1.3" DisplayName=".NET Standard 1.3" />
<SupportedTargetFramework Include=".NETStandard,Version=v1.4" DisplayName=".NET Standard 1.4" />
<SupportedTargetFramework Include=".NETStandard,Version=v1.5" DisplayName=".NET Standard 1.5" />
<SupportedTargetFramework Include=".NETStandard,Version=v1.6" DisplayName=".NET Standard 1.6" />
<SupportedTargetFramework Include=".NETStandard,Version=v2.0" DisplayName=".NET Standard 2.0" />
</ItemGroup>
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.props
============================================================================================================================================
-->
<!-- Temporary workarounds -->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Workaround: https://github.com/dotnet/roslyn/issues/12167 -->
<NoLogo Condition=" '$(NoLogo)' == '' ">true</NoLogo>
<!-- Workaround: https://github.com/Microsoft/msbuild/issues/720 -->
<OverrideToolHost Condition=" '$(DotnetHostPath)' != '' and '$(OverrideToolHost)' == ''">$(DotnetHostPath)</OverrideToolHost>
</PropertyGroup>
<!-- Workaround: https://github.com/dotnet/sdk/issues/1001 -->
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<!-- Workaround: https://github.com/dotnet/sdk/issues/1001 -->
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<!--<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.Sdk.CSharp.props" Condition="'$(MSBuildProjectExtension)' == '.csproj'" />-->
<!--<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.Sdk.VisualBasic.props" Condition="'$(MSBuildProjectExtension)' == '.vbproj'" />-->
<!--
============================================================================================================================================
<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.Sdk.FSharp.props" Condition="'$(MSBuildProjectExtension)' == '.fsproj'">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.FSharp.props
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NET.Sdk.FSharp.props
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.
***********************************************************************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<!-- If any of these variables are set then we are building under the FSharp.NET.Sdk so use their logic -->
<PropertyGroup Condition="'$(UseBundledFSharpTargets)' == '' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- If any of these variables are set then we are building under the FSharp.NET.Sdk so use their logic -->
<UseBundledFSharpTargets Condition=" '$(_FscTaskAssemblyPath_net)' != '' or '$(_FscTaskAssemblyPath_netcoreapp1_0)' != '' or '$(_FscToolFullPath_net)' != '' or '$(_FscToolFullPath_netcoreapp1_0)' != '' ">false</UseBundledFSharpTargets>
<UseBundledFSharpTargets Condition="'$(UseBundledFSharpTargets)' == '' ">true</UseBundledFSharpTargets>
</PropertyGroup>
<!-- Shim to select the correct Microsoft.NET.Sdk.FSharp.props file.
If running under desktop select Microsoft.NET.Sdk.FSharp.props file from VS deployment,
if running core msbuild select Microsoft.NET.Sdk.FSharp.props from dotnet cli deployment -->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<FSharpPropsShim Condition=" '$(FSharpPropsShim)' == '' and Exists('$(MSBuildToolsPath)\FSharp\Microsoft.FSharp.NetSdk.props') ">$(MSBuildToolsPath)\FSharp\Microsoft.FSharp.NetSdk.props</FSharpPropsShim>
<FSharpPropsShim Condition=" '$(FSharpPropsShim)' == '' and Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.NetSdk.props') ">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.NetSdk.props</FSharpPropsShim>
</PropertyGroup>
<!--<Import Project="$(FSharpPropsShim)" Condition=" '$(UseBundledFSharpTargets)' == 'true' and Exists('$(FSharpPropsShim)') " />-->
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.props
============================================================================================================================================
-->
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\Sdk\Sdk.props
============================================================================================================================================
-->
<!--
============================================================================================================================================
</Import>
E:\vspreviewcrash\dotnet\lib\Http\HttpFree.fsproj
============================================================================================================================================
-->
<PropertyGroup>
<OutputType>Library</OutputType>
<TargetFramework>net461</TargetFramework>
<AssemblyName>HttpFree</AssemblyName>
</PropertyGroup>
<ItemGroup>
<None Remove="*.fs" />
</ItemGroup>
<ItemGroup>
<Compile Include="AssemblyInfo.fs" />
<Compile Include="Types.fs" />
<Compile Include="Http.fs" />
<!--<None Include="paket.references" />-->
<Compile Include="System.Net.Http.fs" />
<Compile Include="Security.fs" />
<Compile Include="Optics.fs" />
<Compile Include="UserSearch.fs" />
</ItemGroup>
<ItemGroup>
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Numerics" />
</ItemGroup>
<!--
============================================================================================================================================
<Import Project="..\..\.paket\Paket.Restore.targets">
E:\vspreviewcrash\dotnet\.paket\Paket.Restore.targets
============================================================================================================================================
-->
<!-- Prevent dotnet template engine to parse this file -->
<!--/-:cnd:noEmit-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- make MSBuild track this file for incremental builds. -->
<!-- ref https://blogs.msdn.microsoft.com/msbuild/2005/09/26/how-to-ensure-changes-to-a-custom-target-file-prompt-a-rebuild/ -->
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<!-- Mark that this target file has been loaded. -->
<IsPaketRestoreTargetsFileLoaded>true</IsPaketRestoreTargetsFileLoaded>
<PaketToolsPath>$(MSBuildThisFileDirectory)</PaketToolsPath>
<PaketRootPath>$(MSBuildThisFileDirectory)..\</PaketRootPath>
<PaketRestoreCacheFile>$(PaketRootPath)paket-files\paket.restore.cached</PaketRestoreCacheFile>
<PaketLockFilePath>$(PaketRootPath)paket.lock</PaketLockFilePath>
<MonoPath Condition="'$(MonoPath)' == '' And Exists('/Library/Frameworks/Mono.framework/Commands/mono')">/Library/Frameworks/Mono.framework/Commands/mono</MonoPath>
<MonoPath Condition="'$(MonoPath)' == ''">mono</MonoPath>
<!-- Paket command -->
<PaketExePath Condition=" '$(PaketExePath)' == '' AND Exists('$(PaketRootPath)paket.exe')">$(PaketRootPath)paket.exe</PaketExePath>
<PaketExePath Condition=" '$(PaketExePath)' == '' ">$(PaketToolsPath)paket.exe</PaketExePath>
<PaketCommand Condition=" '$(OS)' == 'Windows_NT'">"$(PaketExePath)"</PaketCommand>
<PaketCommand Condition=" '$(OS)' != 'Windows_NT' ">$(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)"</PaketCommand>
<!-- .net core fdd -->
<_PaketExeExtension>$([System.IO.Path]::GetExtension("$(PaketExePath)"))</_PaketExeExtension>
<PaketCommand Condition=" '$(_PaketExeExtension)' == '.dll' ">dotnet "$(PaketExePath)"</PaketCommand>
<!-- no extension is a shell script -->
<PaketCommand Condition=" '$(_PaketExeExtension)' == '' ">"$(PaketExePath)"</PaketCommand>
<PaketBootStrapperExePath Condition=" '$(PaketBootStrapperExePath)' == '' AND Exists('$(PaketRootPath)paket.bootstrapper.exe')">$(PaketRootPath)paket.bootstrapper.exe</PaketBootStrapperExePath>
<PaketBootStrapperExePath Condition=" '$(PaketBootStrapperExePath)' == '' ">$(PaketToolsPath)paket.bootstrapper.exe</PaketBootStrapperExePath>
<PaketBootStrapperCommand Condition=" '$(OS)' == 'Windows_NT'">"$(PaketBootStrapperExePath)"</PaketBootStrapperCommand>
<PaketBootStrapperCommand Condition=" '$(OS)' != 'Windows_NT' ">$(MonoPath) --runtime=v4.0.30319 "$(PaketBootStrapperExePath)"</PaketBootStrapperCommand>
<!-- Disable automagic references for F# dotnet sdk -->
<!-- This will not do anything for other project types -->
<!-- see https://github.com/fsharp/fslang-design/blob/master/RFCs/FS-1032-fsharp-in-dotnet-sdk.md -->
<DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
<DisableImplicitSystemValueTupleReference>true</DisableImplicitSystemValueTupleReference>
</PropertyGroup>
<Target Name="PaketRestore" Condition="'$(PaketRestoreDisabled)' != 'True'" BeforeTargets="_GenerateDotnetCliToolReferenceSpecs;_GenerateProjectRestoreGraphPerFramework;_GenerateRestoreGraphWalkPerFramework;CollectPackageReferences" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Step 1 Check if lockfile is properly restored -->
<PropertyGroup>
<PaketRestoreRequired>true</PaketRestoreRequired>
<NoWarn>$(NoWarn);NU1603</NoWarn>
</PropertyGroup>
<!-- Because ReadAllText is slow on osx/linux, try to find shasum and awk -->
<PropertyGroup>
<PaketRestoreCachedHasher Condition="'$(OS)' != 'Windows_NT' And '$(PaketRestoreCachedHasher)' == '' And Exists('/usr/bin/shasum') And Exists('/usr/bin/awk')">/usr/bin/shasum $(PaketRestoreCacheFile) | /usr/bin/awk '{ print $1 }'</PaketRestoreCachedHasher>
<PaketRestoreLockFileHasher Condition="'$(OS)' != 'Windows_NT' And '$(PaketRestoreLockFileHash)' == '' And Exists('/usr/bin/shasum') And Exists('/usr/bin/awk')">/usr/bin/shasum $(PaketLockFilePath) | /usr/bin/awk '{ print $1 }'</PaketRestoreLockFileHasher>
</PropertyGroup>
<!-- If shasum and awk exist get the hashes -->
<Exec StandardOutputImportance="Low" Condition=" '$(PaketRestoreCachedHasher)' != '' " Command="$(PaketRestoreCachedHasher)" ConsoleToMSBuild="true">
<Output TaskParameter="ConsoleOutput" PropertyName="PaketRestoreCachedHash" />
</Exec>
<Exec StandardOutputImportance="Low" Condition=" '$(PaketRestoreLockFileHasher)' != '' " Command="$(PaketRestoreLockFileHasher)" ConsoleToMSBuild="true">
<Output TaskParameter="ConsoleOutput" PropertyName="PaketRestoreLockFileHash" />
</Exec>
<PropertyGroup Condition="Exists('$(PaketRestoreCacheFile)') ">
<!-- if no hash has been done yet fall back to just reading in the files and comparing them -->
<PaketRestoreCachedHash Condition=" '$(PaketRestoreCachedHash)' == '' ">$([System.IO.File]::ReadAllText('$(PaketRestoreCacheFile)'))</PaketRestoreCachedHash>
<PaketRestoreLockFileHash Condition=" '$(PaketRestoreLockFileHash)' == '' ">$([System.IO.File]::ReadAllText('$(PaketLockFilePath)'))</PaketRestoreLockFileHash>
<PaketRestoreRequired>true</PaketRestoreRequired>
<PaketRestoreRequired Condition=" '$(PaketRestoreLockFileHash)' == '$(PaketRestoreCachedHash)' ">false</PaketRestoreRequired>
<PaketRestoreRequired Condition=" '$(PaketRestoreLockFileHash)' == '' ">true</PaketRestoreRequired>
</PropertyGroup>
<!-- Do a global restore if required -->
<Exec Command="$(PaketBootStrapperCommand)" Condition="Exists('$(PaketBootStrapperExePath)') AND !(Exists('$(PaketExePath)'))" ContinueOnError="false" />
<Exec Command="$(PaketCommand) restore" Condition=" '$(PaketRestoreRequired)' == 'true' " ContinueOnError="false" />
<!-- Step 2 Detect project specific changes -->
<PropertyGroup>
<PaketReferencesCachedFilePath>$(MSBuildProjectDirectory)\obj\$(MSBuildProjectFile).paket.references.cached</PaketReferencesCachedFilePath>
<!-- MyProject.fsproj.paket.references has the highest precedence -->
<PaketOriginalReferencesFilePath>$(MSBuildProjectFullPath).paket.references</PaketOriginalReferencesFilePath>
<!-- MyProject.paket.references -->
<PaketOriginalReferencesFilePath Condition=" !Exists('$(PaketOriginalReferencesFilePath)')">$(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references</PaketOriginalReferencesFilePath>
<!-- paket.references -->
<PaketOriginalReferencesFilePath Condition=" !Exists('$(PaketOriginalReferencesFilePath)')">$(MSBuildProjectDirectory)\paket.references</PaketOriginalReferencesFilePath>
<PaketResolvedFilePath>$(MSBuildProjectDirectory)\obj\$(MSBuildProjectFile).$(TargetFramework).paket.resolved</PaketResolvedFilePath>
<PaketRestoreRequired>true</PaketRestoreRequired>
<PaketRestoreRequiredReason>references-file-or-cache-not-found</PaketRestoreRequiredReason>
</PropertyGroup>
<!-- Step 2 a Detect changes in references file -->
<PropertyGroup Condition="Exists('$(PaketOriginalReferencesFilePath)') AND Exists('$(PaketReferencesCachedFilePath)') ">
<PaketRestoreCachedHash>$([System.IO.File]::ReadAllText('$(PaketReferencesCachedFilePath)'))</PaketRestoreCachedHash>
<PaketRestoreReferencesFileHash>$([System.IO.File]::ReadAllText('$(PaketOriginalReferencesFilePath)'))</PaketRestoreReferencesFileHash>
<PaketRestoreRequiredReason>references-file</PaketRestoreRequiredReason>
<PaketRestoreRequired Condition=" '$(PaketRestoreReferencesFileHash)' == '$(PaketRestoreCachedHash)' ">false</PaketRestoreRequired>
</PropertyGroup>
<PropertyGroup Condition="!Exists('$(PaketOriginalReferencesFilePath)') AND !Exists('$(PaketReferencesCachedFilePath)') ">
<!-- If both don't exist there is nothing to do. -->
<PaketRestoreRequired>false</PaketRestoreRequired>
</PropertyGroup>
<!-- Step 2 b detect relevant changes in project file (new targetframework) -->
<PropertyGroup Condition=" !Exists('$(PaketResolvedFilePath)') AND '$(TargetFramework)' != '' ">
<PaketRestoreRequired>true</PaketRestoreRequired>
<PaketRestoreRequiredReason>target-framework '$(TargetFramework)'</PaketRestoreRequiredReason>
</PropertyGroup>
<!-- Step 3 Restore project specific stuff if required -->
<Message Condition=" '$(PaketRestoreRequired)' == 'true' " Importance="low" Text="Detected a change ('$(PaketRestoreRequiredReason)') in the project file '$(MSBuildProjectFullPath)', calling paket restore" />
<Exec Command="$(PaketCommand) restore --project &quot;$(MSBuildProjectFullPath)&quot;" Condition=" '$(PaketRestoreRequired)' == 'true' " ContinueOnError="false" />
<!-- This shouldn't actually happen, but just to be sure. -->
<Error Condition=" !Exists('$(PaketResolvedFilePath)') AND '$(TargetFramework)' != '' AND '$(ResolveNuGetPackages)' != 'False' " Text="Paket file '$(PaketResolvedFilePath)' is missing while restoring $(MSBuildProjectFile). Please delete 'paket-files/paket.restore.cached' and call 'paket restore'." />
<!-- Step 4 forward all msbuild properties (PackageReference, DotNetCliToolReference) to msbuild -->
<ReadLinesFromFile Condition="Exists('$(PaketResolvedFilePath)')" File="$(PaketResolvedFilePath)">
<Output TaskParameter="Lines" ItemName="PaketReferencesFileLines" />
</ReadLinesFromFile>
<ItemGroup Condition=" Exists('$(PaketResolvedFilePath)') AND '@(PaketReferencesFileLines)' != '' ">
<PaketReferencesFileLinesInfo Include="@(PaketReferencesFileLines)">
<PackageName>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0])</PackageName>
<PackageVersion>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1])</PackageVersion>
<AllPrivateAssets>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[4])</AllPrivateAssets>
</PaketReferencesFileLinesInfo>
<PackageReference Include="%(PaketReferencesFileLinesInfo.PackageName)">
<Version>%(PaketReferencesFileLinesInfo.PackageVersion)</Version>
<PrivateAssets Condition="%(PaketReferencesFileLinesInfo.AllPrivateAssets) == 'true'">All</PrivateAssets>
</PackageReference>
</ItemGroup>
<PropertyGroup>
<PaketCliToolFilePath>$(MSBuildProjectDirectory)/obj/$(MSBuildProjectFile).paket.clitools</PaketCliToolFilePath>
</PropertyGroup>
<ReadLinesFromFile File="$(PaketCliToolFilePath)">
<Output TaskParameter="Lines" ItemName="PaketCliToolFileLines" />
</ReadLinesFromFile>
<ItemGroup Condition=" '@(PaketCliToolFileLines)' != '' ">
<PaketCliToolFileLinesInfo Include="@(PaketCliToolFileLines)">
<PackageName>$([System.String]::Copy('%(PaketCliToolFileLines.Identity)').Split(',')[0])</PackageName>
<PackageVersion>$([System.String]::Copy('%(PaketCliToolFileLines.Identity)').Split(',')[1])</PackageVersion>
</PaketCliToolFileLinesInfo>
<DotNetCliToolReference Include="%(PaketCliToolFileLinesInfo.PackageName)">
<Version>%(PaketCliToolFileLinesInfo.PackageVersion)</Version>
</DotNetCliToolReference>
</ItemGroup>
<!-- Disabled for now until we know what to do with runtime deps - https://github.com/fsprojects/Paket/issues/2964
<PropertyGroup>
<RestoreConfigFile>$(MSBuildProjectDirectory)/obj/$(MSBuildProjectFile).NuGet.Config</RestoreConfigFile>
</PropertyGroup> -->
</Target>
<Target Name="PaketDisableDirectPack" AfterTargets="_IntermediatePack" BeforeTargets="GenerateNuspec" Condition="('$(IsPackable)' == '' Or '$(IsPackable)' == 'true') And Exists('$(MSBuildProjectDirectory)/obj/$(MSBuildProjectFile).references')" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ContinuePackingAfterGeneratingNuspec>false</ContinuePackingAfterGeneratingNuspec>
</PropertyGroup>
</Target>
<Target Name="PaketOverrideNuspec" AfterTargets="GenerateNuspec" Condition="('$(IsPackable)' == '' Or '$(IsPackable)' == 'true') And Exists('$(MSBuildProjectDirectory)/obj/$(MSBuildProjectFile).references')" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<_NuspecFilesNewLocation Include="$(BaseIntermediateOutputPath)$(Configuration)\*.nuspec" />
</ItemGroup>
<PropertyGroup>
<PaketProjectFile>$(MSBuildProjectDirectory)/$(MSBuildProjectFile)</PaketProjectFile>
<ContinuePackingAfterGeneratingNuspec>true</ContinuePackingAfterGeneratingNuspec>
<UseNewPack>false</UseNewPack>
<UseNewPack Condition=" '$(NuGetToolVersion)' != '4.0.0' ">true</UseNewPack>
<AdjustedNuspecOutputPath>$(BaseIntermediateOutputPath)$(Configuration)</AdjustedNuspecOutputPath>
<AdjustedNuspecOutputPath Condition="@(_NuspecFilesNewLocation) == ''">$(BaseIntermediateOutputPath)</AdjustedNuspecOutputPath>
</PropertyGroup>
<ItemGroup>
<_NuspecFiles Include="$(AdjustedNuspecOutputPath)\*.nuspec" />
</ItemGroup>
<Exec Command="$(PaketCommand) fix-nuspecs files &quot;@(_NuspecFiles)&quot; project-file &quot;$(PaketProjectFile)&quot; " Condition="@(_NuspecFiles) != ''" />
<ConvertToAbsolutePath Condition="@(_NuspecFiles) != ''" Paths="@(_NuspecFiles)">
<Output TaskParameter="AbsolutePaths" PropertyName="NuspecFileAbsolutePath" />
</ConvertToAbsolutePath>
<!-- Call Pack -->
<PackTask Condition="$(UseNewPack)" PackItem="$(PackProjectInputFile)" PackageFiles="@(_PackageFiles)" PackageFilesToExclude="@(_PackageFilesToExclude)" PackageVersion="$(PackageVersion)" PackageId="$(PackageId)" Title="$(Title)" Authors="$(Authors)" Description="$(Description)" Copyright="$(Copyright)" RequireLicenseAcceptance="$(PackageRequireLicenseAcceptance)" LicenseUrl="$(PackageLicenseUrl)" ProjectUrl="$(PackageProjectUrl)" IconUrl="$(PackageIconUrl)" ReleaseNotes="$(PackageReleaseNotes)" Tags="$(PackageTags)" DevelopmentDependency="$(DevelopmentDependency)" BuildOutputInPackage="@(_BuildOutputInPackage)" TargetPathsToSymbols="@(_TargetPathsToSymbols)" TargetFrameworks="@(_TargetFrameworks)" AssemblyName="$(AssemblyName)" PackageOutputPath="$(PackageOutputAbsolutePath)" IncludeSymbols="$(IncludeSymbols)" IncludeSource="$(IncludeSource)" PackageTypes="$(PackageType)" IsTool="$(IsTool)" RepositoryUrl="$(RepositoryUrl)" RepositoryType="$(RepositoryType)" SourceFiles="@(_SourceFiles-&gt;Distinct())" NoPackageAnalysis="$(NoPackageAnalysis)" MinClientVersion="$(MinClientVersion)" Serviceable="$(Serviceable)" FrameworkAssemblyReferences="@(_FrameworkAssemblyReferences)" ContinuePackingAfterGeneratingNuspec="$(ContinuePackingAfterGeneratingNuspec)" NuspecOutputPath="$(AdjustedNuspecOutputPath)" IncludeBuildOutput="$(IncludeBuildOutput)" BuildOutputFolder="$(BuildOutputTargetFolder)" ContentTargetFolders="$(ContentTargetFolders)" RestoreOutputPath="$(RestoreOutputAbsolutePath)" NuspecFile="$(NuspecFileAbsolutePath)" NuspecBasePath="$(NuspecBasePath)" NuspecProperties="$(NuspecProperties)" />
<PackTask Condition="! $(UseNewPack)" PackItem="$(PackProjectInputFile)" PackageFiles="@(_PackageFiles)" PackageFilesToExclude="@(_PackageFilesToExclude)" PackageVersion="$(PackageVersion)" PackageId="$(PackageId)" Title="$(Title)" Authors="$(Authors)" Description="$(Description)" Copyright="$(Copyright)" RequireLicenseAcceptance="$(PackageRequireLicenseAcceptance)" LicenseUrl="$(PackageLicenseUrl)" ProjectUrl="$(PackageProjectUrl)" IconUrl="$(PackageIconUrl)" ReleaseNotes="$(PackageReleaseNotes)" Tags="$(PackageTags)" TargetPathsToAssemblies="@(_TargetPathsToAssemblies->'%(FinalOutputPath)')" TargetPathsToSymbols="@(_TargetPathsToSymbols)" TargetFrameworks="@(_TargetFrameworks)" AssemblyName="$(AssemblyName)" PackageOutputPath="$(PackageOutputAbsolutePath)" IncludeSymbols="$(IncludeSymbols)" IncludeSource="$(IncludeSource)" PackageTypes="$(PackageType)" IsTool="$(IsTool)" RepositoryUrl="$(RepositoryUrl)" RepositoryType="$(RepositoryType)" SourceFiles="@(_SourceFiles-&gt;Distinct())" NoPackageAnalysis="$(NoPackageAnalysis)" MinClientVersion="$(MinClientVersion)" Serviceable="$(Serviceable)" AssemblyReferences="@(_References)" ContinuePackingAfterGeneratingNuspec="$(ContinuePackingAfterGeneratingNuspec)" NuspecOutputPath="$(AdjustedNuspecOutputPath)" IncludeBuildOutput="$(IncludeBuildOutput)" BuildOutputFolder="$(BuildOutputTargetFolder)" ContentTargetFolders="$(ContentTargetFolders)" RestoreOutputPath="$(RestoreOutputAbsolutePath)" NuspecFile="$(NuspecFileAbsolutePath)" NuspecBasePath="$(NuspecBasePath)" NuspecProperties="$(NuspecProperties)" />
</Target>
<!--/+:cnd:noEmit-->
<!--
============================================================================================================================================
</Import>
E:\vspreviewcrash\dotnet\lib\Http\HttpFree.fsproj
============================================================================================================================================
-->
<!--
============================================================================================================================================
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk">
This import was added implicitly because the Project element's Sdk attribute specified "Microsoft.NET.Sdk".
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\Sdk\Sdk.targets
============================================================================================================================================
-->
<!--
***********************************************************************************************
Sdk.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.
***********************************************************************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<!-- Using the same property as Microsoft.CSharp.targets and presumably Microsoft.VisualBasic.targets here -->
<PropertyGroup Condition="'$(TargetFrameworks)' != '' and '$(TargetFramework)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<IsCrossTargetingBuild>true</IsCrossTargetingBuild>
</PropertyGroup>
<!--<Import Project="$(MSBuildThisFileDirectory)..\build\Microsoft.NET.Sdk.BeforeCommonCrossTargeting.targets" Condition="'$(IsCrossTargetingBuild)' == 'true'" />-->
<!--
============================================================================================================================================
<Import Project="$(MSBuildThisFileDirectory)..\build\Microsoft.NET.Sdk.BeforeCommon.targets" Condition="'$(IsCrossTargetingBuild)' != 'true'">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.BeforeCommon.targets
============================================================================================================================================
-->
<!--
***********************************************************************************************
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.
***********************************************************************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<_IsExecutable Condition="'$(OutputType)' == 'Exe' or '$(OutputType)'=='WinExe'">true</_IsExecutable>
</PropertyGroup>
<PropertyGroup Condition="'$(HasRuntimeOutput)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<HasRuntimeOutput>$(_IsExecutable)</HasRuntimeOutput>
<_UsingDefaultForHasRuntimeOutput>true</_UsingDefaultForHasRuntimeOutput>
</PropertyGroup>
<!--
============================================================================================================================================
<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.DefaultAssemblyInfo.targets">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.DefaultAssemblyInfo.targets
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NET.DefaultAssemblyInfo.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.
***********************************************************************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<PropertyGroup Condition=" '$(Version)' == '' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<VersionPrefix Condition=" '$(VersionPrefix)' == '' ">1.0.0</VersionPrefix>
<Version Condition=" '$(VersionSuffix)' != '' ">$(VersionPrefix)-$(VersionSuffix)</Version>
<Version Condition=" '$(Version)' == '' ">$(VersionPrefix)</Version>
</PropertyGroup>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Authors Condition=" '$(Authors)'=='' ">$(AssemblyName)</Authors>
<Company Condition=" '$(Company)'=='' ">$(Authors)</Company>
<AssemblyTitle Condition=" '$(AssemblyTitle)' == '' ">$(AssemblyName)</AssemblyTitle>
<Product Condition=" '$(Product)' == ''">$(AssemblyName)</Product>
</PropertyGroup>
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.BeforeCommon.targets
============================================================================================================================================
-->
<!-- Set default intermediate and output paths -->
<!--
============================================================================================================================================
<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.DefaultOutputPaths.targets">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.DefaultOutputPaths.targets
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NET.DefaultOutputPaths.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.
***********************************************************************************************
-->
<!--
Apply the same default output paths as Microsoft.Common.targets now since we're running before them,
but need to adjust them and/or make decisions in terms of them.
Also note that common targets only set a default OutputPath if neither configuration nor
platform were set by the user. This was used to validate that a valid configuration is passed,
assuming the convention maintained by VS that every Configuration|Platform combination had
an explicit OutputPath. Since we now want to support leaner project files with less
duplication and more automatic defaults, we always set a default OutputPath and can no
longer depend on that convention for validation. Getting validation re-enabled with a
different mechanism is tracked by https://github.com/dotnet/sdk/issues/350
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<Configuration Condition="'$(Configuration)'==''">Debug</Configuration>
<Platform Condition="'$(Platform)'==''">AnyCPU</Platform>
<PlatformName Condition="'$(PlatformName)' == ''">$(Platform)</PlatformName>
<BaseOutputPath Condition="'$(BaseOutputPath)' == ''">bin\</BaseOutputPath>
<BaseOutputPath Condition="!HasTrailingSlash('$(BaseOutputPath)')">$(BaseOutputPath)\</BaseOutputPath>
<OutputPath Condition="'$(OutputPath)' == '' and '$(PlatformName)' == 'AnyCPU'">$(BaseOutputPath)$(Configuration)\</OutputPath>
<OutputPath Condition="'$(OutputPath)' == '' and '$(PlatformName)' != 'AnyCPU'">$(BaseOutputPath)$(PlatformName)\$(Configuration)\</OutputPath>
<OutputPath Condition="!HasTrailingSlash('$(OutputPath)')">$(OutputPath)\</OutputPath>
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)' == ''">obj\</BaseIntermediateOutputPath>
<BaseIntermediateOutputPath Condition="!HasTrailingSlash('$(BaseIntermediateOutputPath)')">$(BaseIntermediateOutputPath)\</BaseIntermediateOutputPath>
<IntermediateOutputPath Condition=" $(IntermediateOutputPath) == '' and '$(PlatformName)' == 'AnyCPU' ">$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
<IntermediateOutputPath Condition=" $(IntermediateOutputPath) == '' and '$(PlatformName)' != 'AnyCPU' ">$(BaseIntermediateOutputPath)$(PlatformName)\$(Configuration)\</IntermediateOutputPath>
<IntermediateOutputPath Condition="!HasTrailingSlash('$(IntermediateOutputPath)')">$(IntermediateOutputPath)\</IntermediateOutputPath>
</PropertyGroup>
<!-- Set the package output path (for nuget pack target) now, before the TargetFramework is appended -->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PackageOutputPath Condition="'$(PackageOutputPath)' == ''">$(OutputPath)</PackageOutputPath>
</PropertyGroup>
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.BeforeCommon.targets
============================================================================================================================================
-->
<!--
Expand TargetFramework to TargetFrameworkIdentifier and TargetFrameworkVersion,
and adjust intermediate and output paths to include it.
-->
<!--
============================================================================================================================================
<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.TargetFrameworkInference.targets">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.TargetFrameworkInference.targets
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NET.TargetFrameworkInference.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.
***********************************************************************************************
-->
<!--
Note that this file is only included when $(TargetFramework) is set and so we do not need to check that here.
Common targets require that $(TargetFrameworkIdentifier) and $(TargetFrameworkVersion) are set by static evaluation
before they are imported. In common cases (currently netstandard, netcoreapp, or net), we infer them from the short
names given via TargetFramework to allow for terseness and lack of duplication in project files.
For other cases, the user must supply them manually.
For cases where inference is supported, the user need only specify the targets in TargetFrameworks, e.g:
<PropertyGroup>
<TargetFrameworks>net45;netstandard1.0</TargetFrameworks>
</PropertyGroup>
For cases where inference is not supported, identifier, version and profile can be specified explicitly as follows:
<PropertyGroup>
<TargetFrameworks>portable-net451+win81;xyz1.0</TargetFrameworks>
<PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'portable-net451+win81'">
<TargetFrameworkIdentifier>.NETPortable</TargetFrameworkIdentifier>
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
<TargetFrameworkProfile>Profile44</TargetFrameworkProfile>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'xyz1.0'">
<TargetFrameworkIdentifier>Xyz</TargetFrameworkVersion>
<PropertyGroup>
Note in the xyz1.0 case, which is meant to demonstrate a framework we don't yet recognize, we can still
infer the version of 1.0. The user can also override it as always we honor a TargetFrameworkIdentifier
or TargetFrameworkVersion that is already set.
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<!-- Split $(TargetFramework) (e.g. net45) into short identifier and short version (e.g. 'net' and '45'). -->
<PropertyGroup Condition="'$(TargetFramework)' != '' and !$(TargetFramework.Contains(',')) and !$(TargetFramework.Contains('+'))" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<_ShortFrameworkIdentifier>$(TargetFramework.TrimEnd('.0123456789'))</_ShortFrameworkIdentifier>
<_ShortFrameworkVersion>$(TargetFramework.Substring($(_ShortFrameworkIdentifier.Length)))</_ShortFrameworkVersion>
</PropertyGroup>
<!-- Map short name to long name. See earlier comment for example of how to work with identifiers that are not recognized here. -->
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<TargetFrameworkIdentifier Condition="'$(_ShortFrameworkIdentifier)' == 'netstandard'">.NETStandard</TargetFrameworkIdentifier>
<TargetFrameworkIdentifier Condition="'$(_ShortFrameworkIdentifier)' == 'netcoreapp'">.NETCoreApp</TargetFrameworkIdentifier>
<TargetFrameworkIdentifier Condition="'$(_ShortFrameworkIdentifier)' == 'net'">.NETFramework</TargetFrameworkIdentifier>
</PropertyGroup>
<!-- Versions with dots are taken as is and just given leading 'v'. -->
<PropertyGroup Condition="'$(TargetFrameworkVersion)' == '' and '$(_ShortFrameworkVersion)' != '' and $(_ShortFrameworkVersion.Contains('.'))" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<TargetFrameworkVersion>v$(_ShortFrameworkVersion)</TargetFrameworkVersion>
</PropertyGroup>
<!-- Versions with no dots and up to 3 characters get leading 'v' and implicit dots between characters. -->
<PropertyGroup Condition="'$(TargetFrameworkVersion)' == '' and '$(_ShortFrameworkVersion)' != ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<TargetFrameworkVersion Condition="$(_ShortFrameworkVersion.Length) == 1">v$(_ShortFrameworkVersion[0]).0</TargetFrameworkVersion>
<TargetFrameworkVersion Condition="$(_ShortFrameworkVersion.Length) == 2">v$(_ShortFrameworkVersion[0]).$(_ShortFrameworkVersion[1])</TargetFrameworkVersion>
<TargetFrameworkVersion Condition="$(_ShortFrameworkVersion.Length) == 3">v$(_ShortFrameworkVersion[0]).$(_ShortFrameworkVersion[1]).$(_ShortFrameworkVersion[2])</TargetFrameworkVersion>
</PropertyGroup>
<!--
Trigger an error if we're unable to infer the framework identifier and version.
We have to evaluate this here and not in the target because by the time the target runs,
Microsoft.Common.targets will have defaulted to .NETFramework,Version=v4.0
-->
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == '' or '$(TargetFrameworkVersion)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<_UnsupportedTargetFrameworkError>true</_UnsupportedTargetFrameworkError>
</PropertyGroup>
<!--
NOTE: We must not validate the TFM before restore target runs as it prevents adding additional TFM
support from being provided by a nuget package such as MSBuild.Sdk.Extras.
We run before RunResolvePackageDependencies and GetReferenceAssemblyPaths so that design-time builds
which do not currently invoke _CheckForInvalidConfigurationAndPlatform, will not trigger spurious
errors that are only consequences of the root cause identified here.
-->
<Target Name="_CheckForUnsupportedTargetFramework" BeforeTargets="_CheckForInvalidConfigurationAndPlatform;RunResolvePackageDependencies;GetReferenceAssemblyPaths" Condition="'$(_UnsupportedTargetFrameworkError)' == 'true'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<NETSdkError Condition="!$(TargetFramework.Contains(';'))" ResourceName="CannotInferTargetFrameworkIdentiferAndVersion" FormatArguments="$([MSBuild]::Escape('$(TargetFramework)'))" />
<NETSdkError Condition="$(TargetFramework.Contains(';'))" ResourceName="TargetFrameworkWithSemicolon" FormatArguments="$([MSBuild]::Escape('$(TargetFramework)'))" />
</Target>
<Target Name="_CollectTargetFrameworkForTelemetry" AfterTargets="_CheckForUnsupportedTargetFramework" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Telemetry EventName="targetframeworkeval" EventData="TargetFrameworkVersion=$([MSBuild]::Escape('$(TargetFrameworkMoniker)'))" />
</Target>
<!--
Don't leave TargetFrameworkVersion empty if it still hasn't been determined. We will trigger the error above,
but we need this to be a valid version so that our error message does not get pre-empted by failure to interpret
version comparison expressions, which is currently unrecoverable in VS.
Also don't leave TargetFrameworkIdentifier unset as it will be defaulted to .NETFramework by common targets, which
can cause restore (which we cannot block, see above) to silently succeed for empty TargetFramework.
-->
<PropertyGroup Condition="'$(TargetFrameworkVersion)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<TargetFrameworkVersion>v0.0</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<TargetFrameworkIdentifier>_</TargetFrameworkIdentifier>
</PropertyGroup>
<!--
Trigger an error if targeting a higher version of .NET Core or .NET Standard than is supported by the current SDK.
-->
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' And '$(NETCoreAppMaximumVersion)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<NETCoreAppMaximumVersion>$(BundledNETCoreAppTargetFrameworkVersion)</NETCoreAppMaximumVersion>
</PropertyGroup>
<Target Name="_CheckForUnsupportedNETCoreVersion" BeforeTargets="_CheckForInvalidConfigurationAndPlatform;Restore;CollectPackageReferences" Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' And '$(NETCoreAppMaximumVersion)' != ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<NETSdkError Condition="'$(_TargetFrameworkVersionWithoutV)' &gt; '$(NETCoreAppMaximumVersion)'" ResourceName="UnsupportedTargetFrameworkVersion" FormatArguments=".NET Core;$(_TargetFrameworkVersionWithoutV);$(NETCoreAppMaximumVersion)" />
</Target>
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETStandard' And '$(NETStandardMaximumVersion)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<NETStandardMaximumVersion>$(BundledNETStandardTargetFrameworkVersion)</NETStandardMaximumVersion>
</PropertyGroup>
<Target Name="_CheckForUnsupportedNETStandardVersion" BeforeTargets="_CheckForInvalidConfigurationAndPlatform;Restore;CollectPackageReferences" Condition="'$(TargetFrameworkIdentifier)' == '.NETStandard' And '$(NETStandardMaximumVersion)' != ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<NETSdkError Condition="'$(_TargetFrameworkVersionWithoutV)' &gt; '$(NETStandardMaximumVersion)'" ResourceName="UnsupportedTargetFrameworkVersion" FormatArguments=".NET Standard;$(_TargetFrameworkVersionWithoutV);$(NETStandardMaximumVersion)" />
</Target>
<!-- Exclude files from OutputPath and IntermediateOutputPath from default item globs. Use the value
of these properties before the TargetFramework is appended, so that if these values are specified
in the project file, the specified value will be used for the exclude.
We may be able to move this to Microsoft.NET.Sdk.DefaultItems.targets (where the other DefaultItemExcludes
are defined) if we fix https://github.com/dotnet/sdk/issues/550
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<DefaultItemExcludes>$(DefaultItemExcludes);$(OutputPath)/**</DefaultItemExcludes>
<DefaultItemExcludes>$(DefaultItemExcludes);$(IntermediateOutputPath)/**</DefaultItemExcludes>
</PropertyGroup>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<AppendTargetFrameworkToOutputPath Condition="'$(AppendTargetFrameworkToOutputPath)' == ''">true</AppendTargetFrameworkToOutputPath>
</PropertyGroup>
<!--
Append $(TargetFramework) directory to output and intermediate paths to prevent bin clashes between
targets.
-->
<PropertyGroup Condition="'$(AppendTargetFrameworkToOutputPath)' == 'true' and '$(TargetFramework)' != '' and '$(_UnsupportedTargetFrameworkError)' != 'true'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<IntermediateOutputPath>$(IntermediateOutputPath)$(TargetFramework.ToLowerInvariant())\</IntermediateOutputPath>
<OutputPath>$(OutputPath)$(TargetFramework.ToLowerInvariant())\</OutputPath>
</PropertyGroup>
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.BeforeCommon.targets
============================================================================================================================================
-->
<!--
Use RuntimeIdentifier to determine PlatformTarget.
Also, enforce that RuntimeIdentifier is always specified for .NETFramework executables.
-->
<!--
============================================================================================================================================
<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.RuntimeIdentifierInference.targets">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.RuntimeIdentifierInference.targets
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NET.RuntimeIdentifierInference.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.
***********************************************************************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<!--
.NETFramework cannot load native package dependencies dynamically
based on the current architecture. We have must have a RID to
resolve and copy native dependencies to the output directory.
When building a .NETFramework exe on Windows and not given a RID,
we'll pick either win7-x64 or win7-x86 (based on PlatformTarget)
if we're not given an explicit RID. However, if after resolving
NuGet assets we find no copy-local native dependencies, we will
emit the binary as AnyCPU.
Note that we must set the RID here early (to be seen during NuGet
restore) in order for the project.assets.json to include the
native dependencies that will let us make the final call on
AnyCPU or platform-specific.
This allows these common cases to work without requiring mention
of RuntimeIdentifier in the user project PlatformTarget:
1. Building an AnyCPU .NETFramework application on any host OS
with no native NuGet dependencies. (*)
2. Building an x86 or x64 NETFramework application on and for
Windows with native NuGet dependencies that do not require
greater than win7.
However, any other combination of host operating system, CPU
architecture, and minimum Windows version will require some
manual intervention in the project file to set up the right
RID. (**)
(*) Building NET4x from non-Windows is still not fully supported:
https://github.com/dotnet/sdk/issues/335) The point above is
that this code would not have to change to make the first
scenario work on non-Windows hosts.
(**) https://github.com/dotnet/sdk/issues/840 tracks improving
the default RID selection here to make more non-AnyCPU scenarios
work without user intervention. The current static evaluation
requirement limits us.
-->
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework' and &#xD;&#xA; '$(HasRuntimeOutput)' == 'true' and &#xD;&#xA; '$(OS)' == 'Windows_NT' and&#xD;&#xA; '$(RuntimeIdentifier)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<_UsingDefaultRuntimeIdentifier>true</_UsingDefaultRuntimeIdentifier>
<RuntimeIdentifier Condition="'$(PlatformTarget)' == 'x64'">win7-x64</RuntimeIdentifier>
<RuntimeIdentifier Condition="'$(PlatformTarget)' == 'x86' or '$(PlatformTarget)' == ''">win7-x86</RuntimeIdentifier>
</PropertyGroup>
<PropertyGroup Condition="'$(PlatformTarget)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<_UsingDefaultPlatformTarget>true</_UsingDefaultPlatformTarget>
</PropertyGroup>
<!-- Determine PlatformTarget (if not already set) from runtime identifier. -->
<Choose xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<When Condition="'$(PlatformTarget)' != '' or '$(RuntimeIdentifier)' == ''" />
<When Condition="$(RuntimeIdentifier.EndsWith('-x86')) or $(RuntimeIdentifier.Contains('-x86-'))">
<PropertyGroup>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
</When>
<When Condition="$(RuntimeIdentifier.EndsWith('-x64')) or $(RuntimeIdentifier.Contains('-x64-'))">
<PropertyGroup>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
</When>
<When Condition="$(RuntimeIdentifier.EndsWith('-arm')) or $(RuntimeIdentifier.Contains('-arm-'))">
<PropertyGroup>
<PlatformTarget>arm</PlatformTarget>
</PropertyGroup>
</When>
<!-- NOTE: PlatformTarget=arm64 is not currently supported and therefore no inference of that here. -->
<Otherwise>
<PropertyGroup>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
</Otherwise>
</Choose>
<!--
SelfContained was not an option in .NET Core SDK 1.0.
Default SelfContained based on the RuntimeIdentifier, so projects don't have to explicitly set SelfContained.
This avoids a breaking change from 1.0 behavior.
-->
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and '$(HasRuntimeOutput)' == 'true' and '$(SelfContained)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<SelfContained Condition="'$(RuntimeIdentifier)' == ''">false</SelfContained>
<SelfContained Condition="'$(RuntimeIdentifier)' != ''">true</SelfContained>
</PropertyGroup>
<Target Name="_CheckForUnsupportedSelfContained" BeforeTargets="_CheckForInvalidConfigurationAndPlatform" Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and '$(HasRuntimeOutput)' == 'true'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<NETSdkError Condition="'$(SelfContained)' == 'true' and '$(RuntimeIdentifier)' == ''" ResourceName="CannotHaveSelfContainedWithoutRuntimeIdentifier" />
</Target>
<Target Name="_CheckForMismatchingPlatform" BeforeTargets="_CheckForInvalidConfigurationAndPlatform" Condition="'$(RuntimeIdentifier)' != '' and '$(PlatformTarget)' != ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<NETSdkError Condition="'$(PlatformTarget)' != 'AnyCPU' and !$(RuntimeIdentifier.ToUpper().Contains($(PlatformTarget.ToUpper())))" ResourceName="CannotHaveRuntimeIdentifierPlatformMismatchPlatformTarget" />
</Target>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Projects can opt out of having the RID appended to the output path by setting this to false. -->
<AppendRuntimeIdentifierToOutputPath Condition="'$(AppendRuntimeIdentifierToOutputPath)' == ''">true</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>
<!--
Append $(RuntimeIdentifier) directory to output and intermediate paths to prevent bin clashes between
targets.
But do not append the implicit default runtime identifier for .NET Framework apps as that would
append a RID the user never mentioned in the path and do so even in the AnyCPU case.
-->
<PropertyGroup Condition="'$(AppendRuntimeIdentifierToOutputPath)' == 'true' and '$(RuntimeIdentifier)' != '' and '$(_UsingDefaultRuntimeIdentifier)' != 'true'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<IntermediateOutputPath>$(IntermediateOutputPath)$(RuntimeIdentifier)\</IntermediateOutputPath>
<OutputPath>$(OutputPath)$(RuntimeIdentifier)\</OutputPath>
</PropertyGroup>
<!--
Switch our default .NETFramework CPU architecture choice back to AnyCPU before
compiling the exe if no copy-local native dependencies were resolved from NuGet
-->
<Target Name="AdjustDefaultPlatformTargetForNetFrameworkExeWithNoNativeCopyLocalItems" AfterTargets="ResolvePackageDependenciesForBuild" BeforeTargets="CoreCompile" Condition="'$(_UsingDefaultPlatformTarget)' == 'true' and&#xD;&#xA; '$(_UsingDefaultRuntimeIdentifier)' == 'true' and &#xD;&#xA; '@(NativeCopyLocalItems)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
</Target>
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.BeforeCommon.targets
============================================================================================================================================
-->
<PropertyGroup Condition="'$(_IsNETCoreOrNETStandard)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<_IsNETCoreOrNETStandard Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp'">true</_IsNETCoreOrNETStandard>
<_IsNETCoreOrNETStandard Condition="'$(TargetFrameworkIdentifier)' == '.NETStandard'">true</_IsNETCoreOrNETStandard>
</PropertyGroup>
<!-- Unification / automatic binding redirect logic -->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<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'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<AutoGenerateBindingRedirects Condition="'$(AutoGenerateBindingRedirects)' == ''">true</AutoGenerateBindingRedirects>
</PropertyGroup>
<!-- Default settings for .NET Core and .NET Standard build logic -->
<PropertyGroup Condition="'$(_IsNETCoreOrNETStandard)' == 'true'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<GenerateDependencyFile Condition=" '$(GenerateDependencyFile)' == '' ">true</GenerateDependencyFile>
<!-- Force .dll extension for .NETCoreApp and .NETStandard projects even if output type is exe. -->
<TargetExt Condition="'$(TargetExt)' == ''">.dll</TargetExt>
<!-- dependencies coming from the package manager lock file should not be copied locally for .NET Core and .NETStandard projects -->
<CopyLocalLockFileAssemblies Condition="'$(CopyLocalLockFileAssemblies)' == ''">false</CopyLocalLockFileAssemblies>
<!-- 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 PreserveCompilatioContext is set. -->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<GenerateDependencyFile Condition="'$(GenerateDependencyFile)' == ''">$(PreserveCompilationContext)</GenerateDependencyFile>
</PropertyGroup>
<!-- Set PublishDir here, before Microsoft.Common.targets, to avoid a competing default there. -->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PublishDirName Condition="'$(PublishDirName)' == ''">publish</PublishDirName>
<!-- ensure the PublishDir is RID specific-->
<PublishDir Condition="'$(PublishDir)' == '' and&#xD;&#xA; '$(AppendRuntimeIdentifierToOutputPath)' != 'true' and&#xD;&#xA; '$(RuntimeIdentifier)' != '' and&#xD;&#xA; '$(_UsingDefaultRuntimeIdentifier)' != 'true'">$(OutputPath)$(RuntimeIdentifier)\$(PublishDirName)\</PublishDir>
<PublishDir Condition="'$(PublishDir)' == ''">$(OutputPath)$(PublishDirName)\</PublishDir>
</PropertyGroup>
<!-- For .NET Framework, reference core assemblies -->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<_TargetFrameworkVersionWithoutV>$(TargetFrameworkVersion)</_TargetFrameworkVersionWithoutV>
<_TargetFrameworkVersionWithoutV Condition="$(TargetFrameworkVersion.StartsWith('v'))">$(TargetFrameworkVersion.Substring(1))</_TargetFrameworkVersionWithoutV>
</PropertyGroup>
<!--
Sets RestoreAdditionalProjectSources or RestoreAdditionalProjectFallbackFolders to the SDK Offline Cache based
on the TargetFramework.
-->
<!--
============================================================================================================================================
<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.NuGetOfflineCache.targets">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.NuGetOfflineCache.targets
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NET.NuGetOfflineCache.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.
***********************************************************************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<_NugetFallbackFolder>$(MSBuildThisFileDirectory)..\..\..\..\NuGetFallbackFolder</_NugetFallbackFolder>
<_IsNETCore1x Condition=" '$(TargetFrameworkIdentifier)' == '.NETCoreApp' and '$(_TargetFrameworkVersionWithoutV)' &lt; '2.0' ">true</_IsNETCore1x>
</PropertyGroup>
<PropertyGroup Condition=" '$(DisableImplicitNuGetFallbackFolder)' != 'true' and Exists($(_NugetFallbackFolder)) " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<RestoreAdditionalProjectSources Condition=" '$(_IsNETCore1x)' == 'true' ">$(RestoreAdditionalProjectSources);$(_NugetFallbackFolder)</RestoreAdditionalProjectSources>
<RestoreAdditionalProjectFallbackFoldersExcludes Condition=" '$(_IsNETCore1x)' == 'true' ">$(RestoreAdditionalProjectFallbackFoldersExcludes);$(_NugetFallbackFolder)</RestoreAdditionalProjectFallbackFoldersExcludes>
<RestoreAdditionalProjectFallbackFolders Condition=" '$(_IsNETCore1x)' != 'true' ">$(RestoreAdditionalProjectFallbackFolders);$(_NugetFallbackFolder)</RestoreAdditionalProjectFallbackFolders>
</PropertyGroup>
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.BeforeCommon.targets
============================================================================================================================================
-->
<ItemGroup Condition=" '$(DisableImplicitFrameworkReferences)' != 'true' and '$(TargetFrameworkIdentifier)' == '.NETFramework'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<_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)' &gt;= '3.5' " />
<_SDKImplicitReference Include="System.Runtime.Serialization" Condition=" '$(_TargetFrameworkVersionWithoutV)' &gt;= '3.5' " />
<_SDKImplicitReference Include="System.Xml.Linq" Condition=" '$(_TargetFrameworkVersionWithoutV)' &gt;= '3.5' " />
<!-- Framework assemblies introduced in .NET 4.0 -->
<_SDKImplicitReference Include="System.Numerics" Condition=" '$(_TargetFrameworkVersionWithoutV)' &gt;= '4.0' " />
<!-- Framework assemblies introduced in .NET 4.5 -->
<_SDKImplicitReference Include="System.IO.Compression.FileSystem" Condition=" '$(_TargetFrameworkVersionWithoutV)' &gt;= '4.5' " />
<!-- Don't automatically reference System.IO.Compression or System.Net.Http to help avoid hitting https://github.com/Microsoft/msbuild/issues/1329. -->
<!--<Reference Include="System.IO.Compression" Condition=" '$(_TargetFrameworkVersionWithoutV)' >= '4.5' "/>
<_SDKImplicitReference Include="System.Net.Http" Condition=" '$(_TargetFrameworkVersionWithoutV)' >= '4.5' "/>-->
<!-- Set Pack=false on implicit references so they don't get added to NuGet packages as framework assemblies -->
<_SDKImplicitReference Update="@(_SDKImplicitReference)" Pack="false" />
<!-- 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 xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- 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)' &gt;= '2.0'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<AssetTargetFallback>$(AssetTargetFallback);net461</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)' != ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<_FrameworkIdentifierForImplicitDefine>$(TargetFrameworkIdentifier.Replace('.', '').ToUpperInvariant())</_FrameworkIdentifierForImplicitDefine>
<_FrameworkIdentifierForImplicitDefine Condition=" '$(TargetFrameworkIdentifier)' == '.NETFramework'">NET</_FrameworkIdentifierForImplicitDefine>
<_FrameworkVersionForImplicitDefine Condition="$(TargetFrameworkVersion.StartsWith('v'))">$(TargetFrameworkVersion.SubString(1))</_FrameworkVersionForImplicitDefine>
<_FrameworkVersionForImplicitDefine Condition="!$(TargetFrameworkVersion.StartsWith('v'))">$(TargetFrameworkVersion)</_FrameworkVersionForImplicitDefine>
<_FrameworkVersionForImplicitDefine>$(_FrameworkVersionForImplicitDefine.Replace('.', '_'))</_FrameworkVersionForImplicitDefine>
<_FrameworkVersionForImplicitDefine Condition=" '$(TargetFrameworkIdentifier)' == '.NETFramework'">$(_FrameworkVersionForImplicitDefine.Replace('_', ''))</_FrameworkVersionForImplicitDefine>
<ImplicitFrameworkDefine>$(_FrameworkIdentifierForImplicitDefine)$(_FrameworkVersionForImplicitDefine)</ImplicitFrameworkDefine>
</PropertyGroup>
<!-- Handle XML documentation file settings -->
<PropertyGroup Condition="'$(GenerateDocumentationFile)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<GenerateDocumentationFile Condition="'$(DocumentationFile)' == ''">false</GenerateDocumentationFile>
<GenerateDocumentationFile Condition="'$(DocumentationFile)' != ''">true</GenerateDocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(GenerateDocumentationFile)' == 'true' and '$(DocumentationFile)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<DocumentationFile>$(IntermediateOutputPath)$(AssemblyName).xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(GenerateDocumentationFile)' != 'true'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<DocumentationFile />
</PropertyGroup>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<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 xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ProjectCapability Include="GenerateDocumentationFile" />
</ItemGroup>
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\Sdk\Sdk.targets
============================================================================================================================================
-->
<PropertyGroup Condition="'$(LanguageTargets)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<LanguageTargets Condition="'$(MSBuildProjectExtension)' == '.csproj'">$(MSBuildToolsPath)\Microsoft.CSharp.targets</LanguageTargets>
<LanguageTargets Condition="'$(MSBuildProjectExtension)' == '.vbproj'">$(MSBuildToolsPath)\Microsoft.VisualBasic.targets</LanguageTargets>
<LanguageTargets Condition="'$(MSBuildProjectExtension)' == '.fsproj'">$(MSBuildThisFileDirectory)..\build\Microsoft.NET.Sdk.FSharp.targets</LanguageTargets>
<!-- If LanguageTargets isn't otherwise set, then just import the common targets. This should allow the restore target to run,
which could bring in NuGet packages that set the LanguageTargets to something else. This means support for different
languages could either be supplied via an SDK or via a NuGet package. -->
<LanguageTargets Condition="'$(LanguageTargets)' == ''">$(MSBuildToolsPath)\Microsoft.Common.CurrentVersion.targets</LanguageTargets>
</PropertyGroup>
<!-- REMARK: Dont remove/rename, the LanguageTargets property is used by F# to hook inside the project's sdk
using Sdk attribute (from .NET Core Sdk 1.0.0-preview4) -->
<!--
============================================================================================================================================
<Import Project="$(LanguageTargets)">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.FSharp.targets
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NET.Sdk.FSharp.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.
***********************************************************************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<PropertyGroup Condition=" '$(UseBundledFSharpTargets)' == 'true' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<AppDesignerFolder Condition="'$(AppDesignerFolder)' == ''">Properties</AppDesignerFolder>
</PropertyGroup>
<PropertyGroup Condition=" '$(DisableImplicitConfigurationDefines)' != 'true' and '$(UseBundledFSharpTargets)' == 'true' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImplicitConfigurationDefine>$(Configuration.ToUpperInvariant())</ImplicitConfigurationDefine>
<!-- Replace dashes and periods in the configuration with underscores. This makes it more likely that
the resulting compilation constant will be a valid C# conditional compilation symbol. As the set
of characters that aren't allowed is essentially open-ended, there's probably not a good way to
fully sanitize the Configuration in MSBuild evaluation. If the resulting string still isn't a
valid conditional combilation symbol, then the compiler will generate the following error and
the define will be ignored:
warning MSB3052: The parameter to the compiler is invalid, '/define:0BAD_DEFINE' will be ignored.
-->
<ImplicitConfigurationDefine>$(ImplicitConfigurationDefine.Replace('-', '_'))</ImplicitConfigurationDefine>
<ImplicitConfigurationDefine>$(ImplicitConfigurationDefine.Replace('.', '_'))</ImplicitConfigurationDefine>
<DefineConstants>$(DefineConstants);$(ImplicitConfigurationDefine)</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(UseBundledFSharpTargets)' == 'true' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<DefineConstants>$(DefineConstants);$(ImplicitFrameworkDefine)</DefineConstants>
</PropertyGroup>
<!-- ***************************************************************************************************************
Loads the cross-targeting targets if we are doing a cross-targeting build
Import design time targets for Roslyn Project System. These are only available if Visual Studio is installed.
Import design time targets before the common crosstargeting targets, which import targets from Nuget.
*************************************************************************************************************** -->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<FSharpDesignTimeTargetsPath>$(MSBuildExtensionsPath)\Microsoft\VisualStudio\Managed\Microsoft.FSharp.DesignTime.targets</FSharpDesignTimeTargetsPath>
</PropertyGroup>
<!--<Import Project="$(FSharpDesignTimeTargetsPath)" Condition=" '$(UseBundledFSharpTargets)' == 'true' and '$(FSharpDesignTimeTargetsPath)' != '' and Exists('$(FSharpDesignTimeTargetsPath)') " />-->
<!--<Import Project="$(MSBuildToolsPath)\Microsoft.Common.CrossTargeting.targets" Condition=" '$(UseBundledFSharpTargets)' == 'true' and '$(IsCrossTargetingBuild)' == 'true' " />-->
<!-- ***************************************************************************************************************
Shim to select the correct Microsoft.NET.Sdk.FSharp.targets file when not running
under Cross-targeting build and not under FSharp.Sdk
If running under desktop select Microsoft.FSharp.targets file from VS deployment,
if running core msbuild select Microsoft.FSharp.targets from dotnet cli deployment
*************************************************************************************************************** -->
<PropertyGroup Condition=" '$(IsCrossTargetingBuild)' != 'true' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<FSharpTargetsShim Condition=" '$(FSharpTargetsShim)' == '' and Exists('$(MSBuildToolsPath)\FSharp\Microsoft.FSharp.NetSdk.targets') ">$(MSBuildToolsPath)\FSharp\Microsoft.FSharp.NetSdk.targets</FSharpTargetsShim>
<FSharpTargetsShim Condition=" '$(FSharpTargetsShim)' == '' and Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.NetSdk.targets') ">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.NetSdk.targets</FSharpTargetsShim>
</PropertyGroup>
<!--<Import Project="$(FSharpTargetsShim)" Condition=" '$(UseBundledFSharpTargets)' == 'true' and '$(IsCrossTargetingBuild)' != 'true' and Exists('$(FSharpTargetsShim)') " />-->
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\Sdk\Sdk.targets
============================================================================================================================================
-->
<!--<Import Project="$(MSBuildThisFileDirectory)..\buildCrossTargeting\Microsoft.NET.Sdk.targets" Condition="'$(IsCrossTargetingBuild)' == 'true'" />-->
<!--
============================================================================================================================================
<Import Project="$(MSBuildThisFileDirectory)..\build\Microsoft.NET.Sdk.targets" Condition="'$(IsCrossTargetingBuild)' != 'true'">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NET.Sdk.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.
***********************************************************************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<!-- Workaround: https://github.com/Microsoft/msbuild/issues/1293 -->
<PropertyGroup Condition="'$(MSBuildRuntimeType)' == 'Core' Or '$(TargetFrameworkIdentifier)' != '.NETFramework'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<GenerateResourceMSBuildArchitecture Condition=" '$(GenerateResourceMSBuildArchitecture)' == '' ">CurrentArchitecture</GenerateResourceMSBuildArchitecture>
<GenerateResourceMSBuildRuntime Condition=" '$(GenerateResourceMSBuildRuntime)' == '' ">CurrentRuntime</GenerateResourceMSBuildRuntime>
</PropertyGroup>
<!--
============================================================================================================================================
<Import Project="Microsoft.NET.Sdk.Common.targets">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.Common.targets
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NET.Sdk.Common.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.
***********************************************************************************************
-->
<!-- This file is imported by both cross-targeting and inner builds. Set properties that need to be available to both here. -->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<MicrosoftNETBuildTasksDirectoryRoot>$(MSBuildThisFileDirectory)..\tools\</MicrosoftNETBuildTasksDirectoryRoot>
<MicrosoftNETBuildTasksTFM Condition=" '$(MSBuildRuntimeType)' == 'Core'">netcoreapp1.0</MicrosoftNETBuildTasksTFM>
<MicrosoftNETBuildTasksTFM Condition=" '$(MicrosoftNETBuildTasksTFM)' == ''">net46</MicrosoftNETBuildTasksTFM>
<MicrosoftNETBuildTasksDirectory>$(MicrosoftNETBuildTasksDirectoryRoot)$(MicrosoftNETBuildTasksTFM)/</MicrosoftNETBuildTasksDirectory>
<MicrosoftNETBuildTasksAssembly>$(MicrosoftNETBuildTasksDirectory)Microsoft.NET.Build.Tasks.dll</MicrosoftNETBuildTasksAssembly>
<!--
Hardcoded list of known implicit packges that are added to project from default SDK targets implicitly.
Should be re-visited when multiple TFM support is added to Dependencies logic.
-->
<DefaultImplicitPackages>Microsoft.NETCore.App;NETStandard.Library</DefaultImplicitPackages>
</PropertyGroup>
<!--
Some versions of Microsoft.NET.Test.Sdk.targets change the OutputType after we've set _IsExecutable and
HasRuntimeOutput default in Microsfot.NET.Sdk.BeforeCommon.targets. Refresh these value here for backwards
compatibilty with that.
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<_IsExecutable Condition="'$(OutputType)' == 'Exe' or '$(OutputType)'=='WinExe'">true</_IsExecutable>
<HasRuntimeOutput Condition="'$(_UsingDefaultForHasRuntimeOutput)' == 'true'">$(_IsExecutable)</HasRuntimeOutput>
</PropertyGroup>
<PropertyGroup Condition="'$(DotnetCliToolTargetFramework)' == '' And '$(BundledNETCoreAppTargetFrameworkVersion)' != ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Set the TFM used to restore .NET CLI tools to match the version of .NET Core bundled in the CLI -->
<DotnetCliToolTargetFramework>netcoreapp$(BundledNETCoreAppTargetFrameworkVersion)</DotnetCliToolTargetFramework>
</PropertyGroup>
<UsingTask TaskName="GetNearestTargetFramework" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<UsingTask TaskName="NETSdkError" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<!--
============================================================
GetTargetFrameworkProperties
Invoked by common targets to return the set of properties
(in the form "key1=value1;...keyN=valueN") needed to build
against the target framework that best matches the referring
project's target framework.
The referring project's $(TargetFrameworkMoniker) is passed
in as $(ReferringTargetFramework).
This is in the common targets so that it will apply to both
cross-targeted and single-targeted projects. It is run
for single-targeted projects so that an error will be
generated if the referenced project is not compatible
with the referencing project's target framework.
============================================================
-->
<Target Name="GetTargetFrameworkProperties" Returns="TargetFramework=$(NearestTargetFramework);ProjectHasSingleTargetFramework=$(_HasSingleTargetFramework);ProjectIsRidAgnostic=$(_IsRidAgnostic)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!-- indicate to caller that project is RID agnostic so that a global property RuntimeIdentifier value can be removed -->
<_IsRidAgnostic>false</_IsRidAgnostic>
<_IsRidAgnostic Condition=" '$(RuntimeIdentifier)' == '' and '$(RuntimeIdentifiers)' == '' ">true</_IsRidAgnostic>
<!-- If a ReferringTargetFramework was not specified, and we only have one TargetFramework, then don't try to check compatibility -->
<_SkipNearestTargetFrameworkResolution Condition="'$(TargetFramework)' != '' and '$(ReferringTargetFramework)' == ''">true</_SkipNearestTargetFrameworkResolution>
<NearestTargetFramework Condition="'$(_SkipNearestTargetFrameworkResolution)' == 'true'">$(TargetFramework)</NearestTargetFramework>
<!-- A project can only have more than one output if the current global properties are such that the current build is a cross-targeting one. -->
<_HasSingleTargetFramework Condition="'$(IsCrossTargetingBuild)' != 'true'">true</_HasSingleTargetFramework>
<_HasSingleTargetFramework Condition="'$(_HasSingleTargetFramework)' == ''">false</_HasSingleTargetFramework>
<_PossibleTargetFrameworks Condition="'$(TargetFramework)' != ''">$(TargetFramework)</_PossibleTargetFrameworks>
<_PossibleTargetFrameworks Condition="'$(TargetFramework)' == ''">$(TargetFrameworks)</_PossibleTargetFrameworks>
</PropertyGroup>
<GetNearestTargetFramework ReferringTargetFramework="$(ReferringTargetFramework)" PossibleTargetFrameworks="$(_PossibleTargetFrameworks)" ProjectFilePath="$(MSBuildProjectFullPath)" Condition="'$(_SkipNearestTargetFrameworkResolution)' != 'true'">
<Output PropertyName="NearestTargetFramework" TaskParameter="NearestTargetFramework" />
</GetNearestTargetFramework>
</Target>
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets
============================================================================================================================================
-->
<!--<ImportGroup>-->
<!--
============================================================================================================================================
<Import Project="$(MSBuildThisFileDirectory)Microsoft.PackageDependencyResolution.targets" Condition="Exists('$(MSBuildThisFileDirectory)Microsoft.PackageDependencyResolution.targets')">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.PackageDependencyResolution.targets
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.PackageDependencyResolution.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.
***********************************************************************************************
-->
<!--
*************************************
1. INPUT PROPERTIES
- That configure the PackageDependency targets
*************************************
-->
<!-- General Properties -->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<!-- Project Assets File -->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ProjectAssetsFile Condition="'$(ProjectAssetsFile)' == ''">$(BaseIntermediateOutputPath)/project.assets.json</ProjectAssetsFile>
</PropertyGroup>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Ensure $(ProjectAssetsFile) is a full path -->
<ProjectAssetsFile Condition="'$([System.IO.Path]::IsPathRooted($(ProjectAssetsFile)))' != 'true'">$([System.IO.Path]::GetFullPath($([System.IO.Path]::Combine('$(MSBuildProjectDirectory)', '$(ProjectAssetsFile)'))))</ProjectAssetsFile>
</PropertyGroup>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ResolvePackageDependenciesForBuild Condition="'$(ResolvePackageDependenciesForBuild)' == ''">true</ResolvePackageDependenciesForBuild>
<CopyLocalLockFileAssemblies Condition="'$(CopyLocalLockFileAssemblies)' == ''">true</CopyLocalLockFileAssemblies>
<ContentPreprocessorOutputDirectory Condition="'$(ContentPreprocessorOutputDirectory)' == ''">$(IntermediateOutputPath)NuGet\</ContentPreprocessorOutputDirectory>
<ProduceOnlyPreprocessorFilesInBuildTask Condition="'$(ProduceOnlyPreprocessorFilesInBuildTask)' == ''">true</ProduceOnlyPreprocessorFilesInBuildTask>
<UseTargetPlatformAsNuGetTargetMoniker Condition="'$(UseTargetPlatformAsNuGetTargetMoniker)' == '' AND '$(TargetFrameworkMoniker)' == '.NETCore,Version=v5.0'">true</UseTargetPlatformAsNuGetTargetMoniker>
<NuGetTargetMoniker Condition="'$(NuGetTargetMoniker)' == '' AND '$(UseTargetPlatformAsNuGetTargetMoniker)' == 'true'">$(TargetPlatformIdentifier),Version=v$([System.Version]::Parse('$(TargetPlatformMinVersion)').ToString(3))</NuGetTargetMoniker>
<NuGetTargetMoniker Condition="'$(NuGetTargetMoniker)' == '' AND '$(UseTargetPlatformAsNuGetTargetMoniker)' != 'true'">$(TargetFrameworkMoniker)</NuGetTargetMoniker>
<EmitAssetsLogMessages Condition="'$(EmitAssetsLogMessages)' == ''">true</EmitAssetsLogMessages>
</PropertyGroup>
<!-- Target Moniker + RID-->
<PropertyGroup Condition="'$(_NugetTargetMonikerAndRID)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<_NugetTargetMonikerAndRID Condition="'$(RuntimeIdentifier)' == ''">$(NuGetTargetMoniker)</_NugetTargetMonikerAndRID>
<_NugetTargetMonikerAndRID Condition="'$(RuntimeIdentifier)' != ''">$(NuGetTargetMoniker)/$(RuntimeIdentifier)</_NugetTargetMonikerAndRID>
</PropertyGroup>
<!--
*************************************
2. EXTERNAL PROPERTIES and ITEMS
- Override or add to external targets
*************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ResolveAssemblyReferencesDependsOn>
$(ResolveAssemblyReferencesDependsOn);
ResolvePackageDependenciesForBuild;
_HandlePackageFileConflicts;
</ResolveAssemblyReferencesDependsOn>
<PrepareResourcesDependsOn>
ResolvePackageDependenciesForBuild;
_HandlePackageFileConflicts;
$(PrepareResourcesDependsOn)
</PrepareResourcesDependsOn>
</PropertyGroup>
<!-- List of targets that emit Dependency DiagnosticMessages items -->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<EmitsDependencyDiagnosticMessages>
RunResolvePackageDependencies;
$(EmitsDependencyDiagnosticMessages)
</EmitsDependencyDiagnosticMessages>
</PropertyGroup>
<!-- Common tokens used in preprocessed content files -->
<ItemGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PreprocessorValue Include="rootnamespace">
<Value>$(RootNamespace)</Value>
</PreprocessorValue>
<PreprocessorValue Include="assemblyname">
<Value>$(AssemblyName)</Value>
</PreprocessorValue>
<PreprocessorValue Include="fullpath">
<Value>$(MSBuildProjectDirectory)</Value>
</PreprocessorValue>
<PreprocessorValue Include="outputfilename">
<Value>$(TargetFileName)</Value>
</PreprocessorValue>
<PreprocessorValue Include="filename">
<Value>$(MSBuildProjectFile)</Value>
</PreprocessorValue>
<PreprocessorValue Include="@(NuGetPreprocessorValue)" Exclude="@(PreprocessorValue)" />
</ItemGroup>
<!--
*************************************
3. BUILD TARGETS
- Override the Depends-On properties, or the individual targets
*************************************
-->
<!--
============================================================
ResolvePackageDependenciesForBuild
Populate items for build. This is triggered before target
"AssignProjectConfiguration" to ensure ProjectReference items
are populated before ResolveProjectReferences is run.
============================================================
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ResolvePackageDependenciesForBuildDependsOn>
ResolveLockFileReferences;
ResolveLockFileAnalyzers;
ResolveLockFileCopyLocalProjectDeps;
IncludeTransitiveProjectReferences
</ResolvePackageDependenciesForBuildDependsOn>
</PropertyGroup>
<Target Name="ResolvePackageDependenciesForBuild" Condition="'$(ResolvePackageDependenciesForBuild)' == 'true' and Exists('$(ProjectAssetsFile)')" BeforeTargets="AssignProjectConfiguration" DependsOnTargets="$(ResolvePackageDependenciesForBuildDependsOn)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<!--
*************************************
4. Package Dependency TASK and TARGETS
- Raise the lock file to MSBuild Items and create derived items
*************************************
-->
<!--
============================================================
RunResolvePackageDependencies
Generate Definitions and Dependencies based on ResolvePackageDependencies task
============================================================
-->
<UsingTask TaskName="Microsoft.NET.Build.Tasks.ResolvePackageDependencies" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<UsingTask TaskName="Microsoft.NET.Build.Tasks.CheckForTargetInAssetsFile" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<UsingTask TaskName="Microsoft.NET.Build.Tasks.JoinItems" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<!-- The condition on this target causes it to be skipped during design-time builds if
the restore operation hasn't run yet. This is to avoid displaying an error in
the Visual Studio error list when a project is created before NuGet restore has
run and created the assets file. -->
<Target Name="RunResolvePackageDependencies" Condition=" '$(DesignTimeBuild)' != 'true' Or Exists('$(ProjectAssetsFile)')" DependsOnTargets="ReportAssetsLogMessages" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Verify that the assets file has a target for the right framework. Otherwise, if we restored for the
wrong framework, we'd end up finding no references to pass to the compiler, and we'd get a ton of
compile errors. -->
<CheckForTargetInAssetsFile AssetsFilePath="$(ProjectAssetsFile)" TargetFrameworkMoniker="$(NuGetTargetMoniker)" RuntimeIdentifier="$(RuntimeIdentifier)" />
<ResolvePackageDependencies ProjectPath="$(MSBuildProjectFullPath)" ProjectAssetsFile="$(ProjectAssetsFile)" ProjectLanguage="$(Language)" ContinueOnError="ErrorAndContinue">
<Output TaskParameter="TargetDefinitions" ItemName="TargetDefinitions" />
<Output TaskParameter="PackageDefinitions" ItemName="PackageDefinitions" />
<Output TaskParameter="FileDefinitions" ItemName="FileDefinitions" />
<Output TaskParameter="PackageDependencies" ItemName="PackageDependencies" />
<Output TaskParameter="FileDependencies" ItemName="FileDependencies" />
<Output TaskParameter="DiagnosticMessages" ItemName="DiagnosticMessages" />
</ResolvePackageDependencies>
</Target>
<!--
============================================================
ResolvePackageDependenciesDesignTime
Aggregate the dependencies produced by ResolvePackageDependencies to a form
that's consumable by an IDE to display package dependencies.
============================================================
-->
<UsingTask TaskName="Microsoft.NET.Build.Tasks.PreprocessPackageDependenciesDesignTime" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<Target Name="ResolvePackageDependenciesDesignTime" Returns="@(_DependenciesDesignTime)" DependsOnTargets="ResolveAssemblyReferencesDesignTime;$(EmitsDependencyDiagnosticMessages)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PreprocessPackageDependenciesDesignTime TargetDefinitions="@(TargetDefinitions)" PackageDefinitions="@(PackageDefinitions)" FileDefinitions="@(FileDefinitions)" PackageDependencies="@(PackageDependencies)" FileDependencies="@(FileDependencies)" References="@(Reference)" DefaultImplicitPackages="$(DefaultImplicitPackages)" InputDiagnosticMessages="@(DiagnosticMessages)" TargetFrameworkMoniker="$(NuGetTargetMoniker)">
<Output TaskParameter="DependenciesDesignTime" ItemName="_DependenciesDesignTime" />
</PreprocessPackageDependenciesDesignTime>
</Target>
<!--
============================================================
CollectSDKReferencesDesignTime
Aggregates the sdk specified as project items and implicit
packages references.
============================================================
-->
<UsingTask TaskName="Microsoft.NET.Build.Tasks.CollectSDKReferencesDesignTime" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<Target Name="CollectSDKReferencesDesignTime" Returns="@(_SDKReference)" DependsOnTargets="CollectPackageReferences" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<CollectSDKReferencesDesignTime SdkReferences="@(SdkReference)" PackageReferences="@(PackageReference)" DefaultImplicitPackages="$(DefaultImplicitPackages)">
<Output TaskParameter="SDKReferencesDesignTime" ItemName="_SDKReference" />
</CollectSDKReferencesDesignTime>
</Target>
<!--
============================================================
CollectResolvedSDKReferencesDesignTime
Aggregates the sdk specified as project items and implicit
packages produced by ResolvePackageDependencies.
============================================================
-->
<Target Name="CollectResolvedSDKReferencesDesignTime" Returns="@(_ResolvedSDKReference)" DependsOnTargets="ResolveSDKReferencesDesignTime;CollectPackageReferences" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<CollectSDKReferencesDesignTime SdkReferences="@(ResolvedSdkReference)" PackageReferences="@(PackageReference)" DefaultImplicitPackages="$(DefaultImplicitPackages)">
<Output TaskParameter="SDKReferencesDesignTime" ItemName="_ResolvedSDKReference" />
</CollectSDKReferencesDesignTime>
</Target>
<!--
============================================================
RunProduceContentAssets
Process content assets by handling preprocessing tokens where necessary, and
produce copy local items, content items grouped by "build action" and file writes
============================================================
-->
<UsingTask TaskName="Microsoft.NET.Build.Tasks.ProduceContentAssets" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<Target Name="RunProduceContentAssets" Returns="_ContentCopyLocalItems;FileWrites" DependsOnTargets="_ComputeActiveTFMFileDependencies" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<_ContentFileDeps Include="@(_ActiveTFMFileDependencies-&gt;WithMetadataValue('FileGroup', 'ContentFile'))" />
</ItemGroup>
<JoinItems Left="@(_ContentFileDeps)" Right="@(FileDefinitions)" RightMetadata="*">
<Output TaskParameter="JoinResult" ItemName="_ContentFileDefs" />
</JoinItems>
<ProduceContentAssets ContentFileDefinitions="@(_ContentFileDefs)" ContentFileDependencies="@(_ContentFileDeps)" ContentPreprocessorValues="@(PreprocessorValue)" ContentPreprocessorOutputDirectory="$(ContentPreprocessorOutputDirectory)" ProduceOnlyPreprocessorFiles="$(ProduceOnlyPreprocessorFilesInBuildTask)" ProjectLanguage="$(Language)">
<Output TaskParameter="CopyLocalItems" ItemName="_ContentCopyLocalItems" />
<Output TaskParameter="ProcessedContentItems" ItemName="_ProcessedContentItems" />
<Output TaskParameter="FileWrites" ItemName="FileWrites" />
</ProduceContentAssets>
<!-- The items in _ProcessedContentItems need to go into the appropriately-named item group,
but the names depend upon the items themselves. Split it apart. -->
<CreateItem Include="@(_ProcessedContentItems)" Condition="'@(_ProcessedContentItems)' != ''">
<Output TaskParameter="Include" ItemName="%(_ProcessedContentItems.ProcessedItemType)" />
</CreateItem>
</Target>
<!--
============================================================
ReportAssetsLogMessages
Report Log Messages in the assets file to MSBuild and raise them as
DiagnosticMessage items that can be consumed downstream (e.g. by the
dependency node in the solution explorer)
============================================================
-->
<UsingTask TaskName="Microsoft.NET.Build.Tasks.ReportAssetsLogMessages" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<!-- The condition on this target causes it to be skipped during design-time builds if
the restore operation hasn't run yet. This is to avoid displaying an error in
the Visual Studio error list when a project is created before NuGet restore has
run and created the assets file. -->
<Target Name="ReportAssetsLogMessages" Condition="'$(EmitAssetsLogMessages)' == 'true' And ('$(DesignTimeBuild)' != 'true' Or Exists('$(ProjectAssetsFile)'))" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ReportAssetsLogMessages ProjectAssetsFile="$(ProjectAssetsFile)" ContinueOnError="ErrorAndContinue">
<Output TaskParameter="DiagnosticMessages" ItemName="DiagnosticMessages" />
</ReportAssetsLogMessages>
</Target>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<EmitsDependencyDiagnosticMessages>
ReportAssetsLogMessages;
$(EmitsDependencyDiagnosticMessages)
</EmitsDependencyDiagnosticMessages>
</PropertyGroup>
<!--
============================================================
HELPERS: Get Package and File Dependencies matching active TFM and RID
============================================================
-->
<Target Name="_ComputeActiveTFMPackageDependencies" DependsOnTargets="RunResolvePackageDependencies" Returns="_ActiveTFMPackageDependencies" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<_ActiveTFMPackageDependencies Include="@(PackageDependencies-&gt;WithMetadataValue('ParentTarget', '$(_NugetTargetMonikerAndRID)'))" />
</ItemGroup>
</Target>
<Target Name="_ComputeActiveTFMFileDependencies" DependsOnTargets="RunResolvePackageDependencies" Returns="_ActiveTFMFileDependencies" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<_ActiveTFMFileDependencies Include="@(FileDependencies-&gt;WithMetadataValue('ParentTarget', '$(_NugetTargetMonikerAndRID)'))" />
</ItemGroup>
</Target>
<Target Name="_ComputeTFMOnlyFileDependencies" DependsOnTargets="RunResolvePackageDependencies" Returns="_TFMOnlyFileDependencies" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<_TFMOnlyFileDependencies Include="@(FileDependencies-&gt;WithMetadataValue('ParentTarget', '$(NuGetTargetMoniker)'))" />
</ItemGroup>
</Target>
<!--
============================================================
Reference Targets: For populating References based on lock file
- _ComputeLockFileReferences
- _ComputeLockFileFrameworks
- ResolveLockFileReferences
============================================================
-->
<Target Name="_ComputeLockFileReferences" DependsOnTargets="_ComputeTFMOnlyFileDependencies" Returns="ResolvedCompileFileDefinitions" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<_CompileFileItems Include="@(_TFMOnlyFileDependencies-&gt;WithMetadataValue('FileGroup', 'CompileTimeAssembly'))" />
</ItemGroup>
<!-- Get corresponding file definitions -->
<JoinItems Left="@(_CompileFileItems)" Right="@(FileDefinitions)" RightMetadata="*">
<Output TaskParameter="JoinResult" ItemName="_CompileFileDefinitions" />
</JoinItems>
<ItemGroup>
<ResolvedCompileFileDefinitions Include="@(_CompileFileDefinitions->'%(ResolvedPath)')">
<Private>false</Private>
<NuGetIsFrameworkReference>false</NuGetIsFrameworkReference>
<NuGetSourceType>Package</NuGetSourceType>
<NuGetPackageId>%(PackageName)</NuGetPackageId>
<NuGetPackageVersion>%(PackageVersion)</NuGetPackageVersion>
</ResolvedCompileFileDefinitions>
</ItemGroup>
</Target>
<Target Name="_ComputeLockFileFrameworks" Condition="'$(DisableLockFileFrameworks)' != 'true'" DependsOnTargets="_ComputeTFMOnlyFileDependencies" Returns="ResolvedFrameworkAssemblies" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<_FrameworkAssemblies Include="@(_TFMOnlyFileDependencies-&gt;WithMetadataValue('FileGroup', 'FrameworkAssembly'))" />
<ResolvedFrameworkAssemblies Include="@(_FrameworkAssemblies->'%(FrameworkAssembly)')">
<Private>false</Private>
<Pack>false</Pack>
<NuGetIsFrameworkReference>true</NuGetIsFrameworkReference>
<NuGetSourceType>Package</NuGetSourceType>
<NuGetPackageId>%(PackageName)</NuGetPackageId>
<NuGetPackageVersion>%(PackageVersion)</NuGetPackageVersion>
</ResolvedFrameworkAssemblies>
</ItemGroup>
</Target>
<Target Name="ResolveLockFileReferences" DependsOnTargets="_ComputeLockFileReferences;_ComputeLockFileFrameworks" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<!-- Add framework references from NuGet packages here, so that if there is also a matching reference from a NuGet package,
it will be treated the same as a reference from the project file. -->
<Reference Include="@(ResolvedFrameworkAssemblies)" />
<ResolvedCompileFileDefinitions Update="@(ResolvedCompileFileDefinitions)">
<HintPath>%(FullPath)</HintPath>
</ResolvedCompileFileDefinitions>
</ItemGroup>
<JoinItems Left="@(ResolvedCompileFileDefinitions)" LeftKey="FileName" LeftMetadata="*" Right="@(Reference)" RightKey="" RightMetadata="*">
<Output TaskParameter="JoinResult" ItemName="_JoinedResolvedCompileFileDefinitions" />
</JoinItems>
<ItemGroup>
<Reference Remove="@(_JoinedResolvedCompileFileDefinitions)" />
<Reference Include="@(_JoinedResolvedCompileFileDefinitions)" />
</ItemGroup>
<ItemGroup>
<ResolvedCompileFileDefinitionsToAdd Include="@(ResolvedCompileFileDefinitions)" />
<ResolvedCompileFileDefinitionsToAdd Remove="%(_JoinedResolvedCompileFileDefinitions.HintPath)" />
<!-- Add the references we computed -->
<Reference Include="@(ResolvedCompileFileDefinitionsToAdd)" />
</ItemGroup>
</Target>
<!--
============================================================
ProjectReference Targets: Include transitive project references before
ResolveProjectReferences is called
- _ComputeTransitiveProjectReferences
- IncludeTransitiveProjectReferences
============================================================
-->
<Target Name="_ComputeTransitiveProjectReferences" DependsOnTargets="_ComputeActiveTFMPackageDependencies" Returns="_TransitiveProjectReferences" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<_TransitiveProjectDependencies Include="@(_ActiveTFMPackageDependencies-&gt;WithMetadataValue('TransitiveProjectReference', 'true'))" />
</ItemGroup>
<!-- Get corresponding package definitions -->
<JoinItems Left="@(_TransitiveProjectDependencies)" Right="@(PackageDefinitions)" RightMetadata="*">
<Output TaskParameter="JoinResult" ItemName="_TransitiveProjectDefinitions" />
</JoinItems>
<ItemGroup>
<_TransitiveProjectReferences Include="%(_TransitiveProjectDefinitions.Path)">
<ResolvedPath>%(_TransitiveProjectDefinitions.ResolvedPath)</ResolvedPath>
</_TransitiveProjectReferences>
</ItemGroup>
</Target>
<Target Name="IncludeTransitiveProjectReferences" DependsOnTargets="_ComputeTransitiveProjectReferences" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<!-- Add the references we computed -->
<ProjectReference Include="@(_TransitiveProjectReferences)" />
</ItemGroup>
</Target>
<!--
============================================================
Analyzer Targets: For populating Analyzers based on lock file
- _ComputeLockFileAnalyzers
- ResolveLockFileAnalyzers
============================================================
-->
<Target Name="_ComputeLockFileAnalyzers" DependsOnTargets="RunResolvePackageDependencies" Returns="ResolvedAnalyzers" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<AnalyzerFiles Include="@(FileDefinitions-&gt;WithMetadataValue('Analyzer', 'true'))" />
<ResolvedAnalyzers Include="%(AnalyzerFiles.ResolvedPath)" />
</ItemGroup>
</Target>
<Target Name="ResolveLockFileAnalyzers" DependsOnTargets="_ComputeLockFileAnalyzers" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<!-- Add the analyzers we computed -->
<Analyzer Include="@(ResolvedAnalyzers)" />
</ItemGroup>
</Target>
<!--
============================================================
CopyLocal Targets: For populating CopyLocal based on lock file
- _ComputeLockFileCopyLocal
- ResolveLockFileCopyLocalProjectDeps
============================================================
-->
<Target Name="_ComputeLockFileCopyLocal" DependsOnTargets="_ComputeActiveTFMFileDependencies;RunProduceContentAssets" Returns="NativeCopyLocalItems;RuntimeCopyLocalItems;ResourceCopyLocalItems;AllCopyLocalItems" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<_NativeFileItems Include="@(_ActiveTFMFileDependencies-&gt;WithMetadataValue('FileGroup', 'NativeLibrary'))" />
<_RuntimeFileItems Include="@(_ActiveTFMFileDependencies-&gt;WithMetadataValue('FileGroup', 'RuntimeAssembly'))" />
<_ResourceFileItems Include="@(_ActiveTFMFileDependencies-&gt;WithMetadataValue('FileGroup', 'ResourceAssembly'))" />
</ItemGroup>
<!--NativeLibrary-->
<JoinItems Left="@(_NativeFileItems)" Right="@(FileDefinitions)" RightMetadata="*">
<Output TaskParameter="JoinResult" ItemName="_NativeCopyLocalItems" />
</JoinItems>
<!--RuntimeAssembly-->
<JoinItems Left="@(_RuntimeFileItems)" Right="@(FileDefinitions)" RightMetadata="*">
<Output TaskParameter="JoinResult" ItemName="_RuntimeCopyLocalItems" />
</JoinItems>
<!--ResourceAssembly-->
<JoinItems Left="@(_ResourceFileItems)" Right="@(FileDefinitions)" RightMetadata="*">
<Output TaskParameter="JoinResult" ItemName="_ResourceCopyLocalItems" />
</JoinItems>
<ItemGroup>
<NativeCopyLocalItems Include="%(_NativeCopyLocalItems.ResolvedPath)" />
<RuntimeCopyLocalItems Include="%(_RuntimeCopyLocalItems.ResolvedPath)" />
<!-- These resource items are in folders with names which correspond to the locale. Here, set the DestinationSubDirectory to the
folder name so that it will be copied to the right target path and so conflict resolution won't think there are conflicts
between satellite assemblies in different languages. -->
<_ResourceCopyLocalItems Update="@(_ResourceCopyLocalItems)" Condition="'@(_ResourceCopyLocalItems)' != ''">
<DestinationSubDirectory>$([System.IO.Directory]::GetParent(%(ResolvedPath)).get_Name())\</DestinationSubDirectory>
</_ResourceCopyLocalItems>
<ResourceCopyLocalItems Include="%(_ResourceCopyLocalItems.ResolvedPath)">
<DestinationSubDirectory>%(_ResourceCopyLocalItems.DestinationSubDirectory)</DestinationSubDirectory>
</ResourceCopyLocalItems>
<!-- ALL -->
<_AllCopyLocalItems Include="@(_NativeCopyLocalItems);@(_RuntimeCopyLocalItems);@(_ResourceCopyLocalItems)" />
<AllCopyLocalItems Include="@(_AllCopyLocalItems->'%(ResolvedPath)')">
<Private>false</Private>
<NuGetIsFrameworkReference>false</NuGetIsFrameworkReference>
<NuGetSourceType>Package</NuGetSourceType>
<NuGetPackageId>%(PackageName)</NuGetPackageId>
<NuGetPackageVersion>%(PackageVersion)</NuGetPackageVersion>
</AllCopyLocalItems>
<AllCopyLocalItems Include="@(_ContentCopyLocalItems)">
<Private>false</Private>
<NuGetIsFrameworkReference>false</NuGetIsFrameworkReference>
<NuGetSourceType>Package</NuGetSourceType>
<NuGetPackageId>%(PackageName)</NuGetPackageId>
<NuGetPackageVersion>%(PackageVersion)</NuGetPackageVersion>
</AllCopyLocalItems>
</ItemGroup>
</Target>
<Target Name="ResolveLockFileCopyLocalProjectDeps" Condition="'$(CopyLocalLockFileAssemblies)' == 'true'" DependsOnTargets="_ComputeLockFileCopyLocal" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Add the copy local items -->
<ItemGroup>
<ReferenceCopyLocalPaths Include="@(AllCopyLocalItems)" />
</ItemGroup>
</Target>
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets
============================================================================================================================================
-->
<!--</ImportGroup>-->
<!--
============================================================================================================================================
<Import Project="Microsoft.NET.Sdk.DefaultItems.targets">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.DefaultItems.targets
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NET.Sdk.DefaultItems.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.
***********************************************************************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<EnableDefaultItems Condition=" '$(EnableDefaultItems)' == '' ">true</EnableDefaultItems>
<EnableDefaultCompileItems Condition=" '$(EnableDefaultCompileItems)' == '' ">true</EnableDefaultCompileItems>
<EnableDefaultEmbeddedResourceItems Condition=" '$(EnableDefaultEmbeddedResourceItems)' == '' ">true</EnableDefaultEmbeddedResourceItems>
<EnableDefaultNoneItems Condition=" '$(EnableDefaultNoneItems)' == '' ">true</EnableDefaultNoneItems>
</PropertyGroup>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Set DefaultItemExcludes property for items that should be excluded from the default Compile, etc items.
This is in the .targets because it needs to come after the final BaseOutputPath has been evaluated. -->
<!-- bin folder, by default -->
<DefaultItemExcludes>$(DefaultItemExcludes);$(BaseOutputPath)/**</DefaultItemExcludes>
<!-- obj folder, by default -->
<DefaultItemExcludes>$(DefaultItemExcludes);$(BaseIntermediateOutputPath)/**</DefaultItemExcludes>
<!-- Various files that should generally always be ignored -->
<DefaultItemExcludes>$(DefaultItemExcludes);**/*.user</DefaultItemExcludes>
<DefaultItemExcludes>$(DefaultItemExcludes);**/*.*proj</DefaultItemExcludes>
<DefaultItemExcludes>$(DefaultItemExcludes);**/*.sln</DefaultItemExcludes>
<DefaultItemExcludes>$(DefaultItemExcludes);**/*.vssscc</DefaultItemExcludes>
<!-- WARNING: This pattern is there to ignore folders such as .git and .vs, but it will also match items included with a
relative path outside the project folder (for example "..\Shared\Shared.cs"). So be sure only to apply it to items
that are in the project folder. -->
<DefaultExcludesInProjectFolder>$(DefaultItemExcludesInProjectFolder);**/.*/**</DefaultExcludesInProjectFolder>
</PropertyGroup>
<!-- Set the default versions of the NETStandard.Library or Microsoft.NETCore.App packages to reference.
The implicit package references themselves are defined in Microsoft.NET.Sdk.props, so that they can be overridden
in the project file. -->
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETStandard'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- If targeting the same release that is bundled with the .NET Core SDK, use the bundled package version provided by Microsoft.NETCoreSdk.BundledVersions.props -->
<NETStandardImplicitPackageVersion Condition="'$(NETStandardImplicitPackageVersion)' =='' And '$(_TargetFrameworkVersionWithoutV)' == '$(BundledNETStandardTargetFrameworkVersion)'">$(BundledNETStandardPackageVersion)</NETStandardImplicitPackageVersion>
<!-- If targeting .NET Standard 1.x, use version 1.6.1 of the package. This is so that when projects are packed, the dependency on the package produced won't change when
updating to the 2.0 or higher SDK. When targeting .NET Standard 2.0 or higher, the NETStandard.Library reference won't show up as a dependency of the package
produced, so we will roll forward to the latest version. -->
<NETStandardImplicitPackageVersion Condition="'$(NETStandardImplicitPackageVersion)' =='' And '$(_TargetFrameworkVersionWithoutV)' &lt; '2.0'">1.6.1</NETStandardImplicitPackageVersion>
<!-- Default to use the latest stable release. Currently this is the same as the previous clause, but when we have a stable 2.0 package this should change. -->
<NETStandardImplicitPackageVersion Condition="'$(NETStandardImplicitPackageVersion)' ==''">1.6.1</NETStandardImplicitPackageVersion>
</PropertyGroup>
<!--
Determine the RuntimeFrameworkVersion when targeting .NET Core
When targeting .NET Core, the TargetFramework is generally used to specify which version of the runtime to use.
In order to target a specific patch version, or to float the version number (2.0-*), the RuntimeFrameworkVersion
property can be used.
The framework version that is written to the runtimeconfig.json file is based on the actual resolved package version
of Microsoft.NETCore.App. This is to allow floating the verion number.
If RuntimeFrameworkVersion is not specified, the following logic applies:
- Self-contained apps use the latest corrsesponding patch version (from when the SDK shipped)
- When targeting .NET Core 2.0 or higher:
- Framework-dependent apps use the target framework version with a ".0" patch version
- When targeting .NET Core 1.0 and 1.1
- Framework-dependent apps use 1.0.5 and 1.1.2, respectively.
- This is done for compatibility with previous releases that bumped the self-contained and framework-dependent versions together.
-->
<!-- These properties are here as a test hook so that we can test with the versions bumped before the actual framework
builds are available. -->
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' And '$(RuntimeFrameworkVersion)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImplicitRuntimeFrameworkVersionForSelfContainedNetCoreApp1_0 Condition="'$(ImplicitRuntimeFrameworkVersionForSelfContainedNetCoreApp1_0)' == ''">1.0.5</ImplicitRuntimeFrameworkVersionForSelfContainedNetCoreApp1_0>
<ImplicitRuntimeFrameworkVersionForSelfContainedNetCoreApp1_1 Condition="'$(ImplicitRuntimeFrameworkVersionForSelfContainedNetCoreApp1_1)' == ''">1.1.2</ImplicitRuntimeFrameworkVersionForSelfContainedNetCoreApp1_1>
<ImplicitRuntimeFrameworkVersionForSelfContainedNetCoreApp2_0 Condition="'$(ImplicitRuntimeFrameworkVersionForSelfContainedNetCoreApp2_0)' == ''">2.0.0</ImplicitRuntimeFrameworkVersionForSelfContainedNetCoreApp2_0>
</PropertyGroup>
<!-- Select implicit runtime framework versions -->
<Choose xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- If not targeting .NET Core, or if RuntimeFrameworkVersion is already set, do nothing -->
<When Condition="'$(TargetFrameworkIdentifier)' != '.NETCoreApp' Or '$(RuntimeFrameworkVersion)' != ''" />
<When Condition="'$(_TargetFrameworkVersionWithoutV)' == '1.0'">
<PropertyGroup>
<ImplicitRuntimeFrameworkVersionForFrameworkDependentApp>1.0.5</ImplicitRuntimeFrameworkVersionForFrameworkDependentApp>
<ImplicitRuntimeFrameworkVersionForSelfContainedApp>$(ImplicitRuntimeFrameworkVersionForSelfContainedNetCoreApp1_0)</ImplicitRuntimeFrameworkVersionForSelfContainedApp>
</PropertyGroup>
</When>
<When Condition="'$(_TargetFrameworkVersionWithoutV)' == '1.1'">
<PropertyGroup>
<ImplicitRuntimeFrameworkVersionForFrameworkDependentApp>1.1.2</ImplicitRuntimeFrameworkVersionForFrameworkDependentApp>
<ImplicitRuntimeFrameworkVersionForSelfContainedApp>$(ImplicitRuntimeFrameworkVersionForSelfContainedNetCoreApp1_1)</ImplicitRuntimeFrameworkVersionForSelfContainedApp>
</PropertyGroup>
</When>
<When Condition="'$(_TargetFrameworkVersionWithoutV)' == '2.0'">
<PropertyGroup>
<ImplicitRuntimeFrameworkVersionForFrameworkDependentApp>2.0</ImplicitRuntimeFrameworkVersionForFrameworkDependentApp>
<ImplicitRuntimeFrameworkVersionForSelfContainedApp>$(ImplicitRuntimeFrameworkVersionForSelfContainedNetCoreApp2_0)</ImplicitRuntimeFrameworkVersionForSelfContainedApp>
</PropertyGroup>
</When>
<!-- If targeting the same pre-release that is bundled with the .NET Core SDK, use the bundled package version provided by Microsoft.NETCoreSdk.BundledVersions.props -->
<When Condition="'$(_TargetFrameworkVersionWithoutV)' == '$(BundledNETCoreAppTargetFrameworkVersion)'">
<PropertyGroup>
<ImplicitRuntimeFrameworkVersionForFrameworkDependentApp>$(BundledNETCoreAppPackageVersion)</ImplicitRuntimeFrameworkVersionForFrameworkDependentApp>
<ImplicitRuntimeFrameworkVersionForSelfContainedApp>$(BundledNETCoreAppPackageVersion)</ImplicitRuntimeFrameworkVersionForSelfContainedApp>
</PropertyGroup>
</When>
<!-- If not covered by the previous cases, use the target framework version for the implicit RuntimeFrameworkVersions -->
<Otherwise>
<PropertyGroup>
<ImplicitRuntimeFrameworkVersionForFrameworkDependentApp>$(_TargetFrameworkVersionWithoutV)</ImplicitRuntimeFrameworkVersionForFrameworkDependentApp>
<ImplicitRuntimeFrameworkVersionForSelfContainedApp>$(_TargetFrameworkVersionWithoutV)</ImplicitRuntimeFrameworkVersionForSelfContainedApp>
</PropertyGroup>
</Otherwise>
</Choose>
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' And '$(RuntimeFrameworkVersion)' == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<RuntimeFrameworkVersion Condition="'$(SelfContained)' == 'true' ">$(ImplicitRuntimeFrameworkVersionForSelfContainedApp)</RuntimeFrameworkVersion>
<RuntimeFrameworkVersion Condition="'$(SelfContained)' != 'true' ">$(ImplicitRuntimeFrameworkVersionForFrameworkDependentApp)</RuntimeFrameworkVersion>
</PropertyGroup>
<!--
Automatically add Link metadata to items of specific types if they are outside of the project folder and don't already have the Link metadata set.
This will cause them to be shown in the Solution Explorer. If an item has LinkBase metadata, the automatic Link will start with that value, and
the items will appear in the Solution Explorer under the folder specified by LinkBase.
-->
<ItemGroup Condition="'$(SetLinkMetadataAutomatically)' != 'false'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Compile Update="@(Compile)">
<!-- First, add a trailing slash to the LinkBase metadata if necessary. This allows us to use the same value
for the Link metadata whether or not LinkBase metadata is set: %(LinkBase)%(RecursiveDir)%(Filename)%(Extension)
Note that RecursiveDir already includes the trailing slash.
-->
<LinkBase Condition="'%(LinkBase)' != ''">$([MSBuild]::EnsureTrailingSlash(%(LinkBase)))</LinkBase>
<!-- Set the Link metadata if it's not already set, if the item wasn't defined in a shared project, and the item is outside of the project directory.
Check whether the item was defined in a shared project by checking whether the extension of the defining project was .projitems.
Check whether an item is inside the project directory by seeing if the FullPath starts with EnsureTrailingSlash(MSBuildProjectDirectory)
The FullPath and the MSBuildProjectDirectory will both already be normalized full paths.
The call to [MSBuild]::ValueOrDefault() is there in order to allow calling StartsWith on the FullPath value, since it's
not possible to call a string method on a metadata item directly. The intrinsic ValueOrDefault() will be more
performant than calling String.Copy(), which has been used for this in other contexts, but actually makes a copy
of the string data.
-->
<Link Condition="'%(Link)' == '' And '%(DefiningProjectExtension)' != '.projitems' And !$([MSBuild]::ValueOrDefault('%(FullPath)', '').StartsWith($([MSBuild]::EnsureTrailingSlash($(MSBuildProjectDirectory)))))">%(LinkBase)%(RecursiveDir)%(Filename)%(Extension)</Link>
</Compile>
<AdditionalFiles Update="@(AdditionalFiles)">
<LinkBase Condition="'%(LinkBase)' != ''">$([MSBuild]::EnsureTrailingSlash(%(LinkBase)))</LinkBase>
<Link Condition="'%(Link)' == '' And '%(DefiningProjectExtension)' != '.projitems' And !$([MSBuild]::ValueOrDefault('%(FullPath)', '').StartsWith($([MSBuild]::EnsureTrailingSlash($(MSBuildProjectDirectory)))))">%(LinkBase)%(RecursiveDir)%(Filename)%(Extension)</Link>
</AdditionalFiles>
<None Update="@(None)">
<LinkBase Condition="'%(LinkBase)' != ''">$([MSBuild]::EnsureTrailingSlash(%(LinkBase)))</LinkBase>
<Link Condition="'%(Link)' == '' And '%(DefiningProjectExtension)' != '.projitems' And !$([MSBuild]::ValueOrDefault('%(FullPath)', '').StartsWith($([MSBuild]::EnsureTrailingSlash($(MSBuildProjectDirectory)))))">%(LinkBase)%(RecursiveDir)%(Filename)%(Extension)</Link>
</None>
<Content Update="@(Content)">
<LinkBase Condition="'%(LinkBase)' != ''">$([MSBuild]::EnsureTrailingSlash(%(LinkBase)))</LinkBase>
<Link Condition="'%(Link)' == '' And '%(DefiningProjectExtension)' != '.projitems' And !$([MSBuild]::ValueOrDefault('%(FullPath)', '').StartsWith($([MSBuild]::EnsureTrailingSlash($(MSBuildProjectDirectory)))))">%(LinkBase)%(RecursiveDir)%(Filename)%(Extension)</Link>
</Content>
<EmbeddedResource Update="@(EmbeddedResource)">
<LinkBase Condition="'%(LinkBase)' != ''">$([MSBuild]::EnsureTrailingSlash(%(LinkBase)))</LinkBase>
<Link Condition="'%(Link)' == '' And '%(DefiningProjectExtension)' != '.projitems' And !$([MSBuild]::ValueOrDefault('%(FullPath)', '').StartsWith($([MSBuild]::EnsureTrailingSlash($(MSBuildProjectDirectory)))))">%(LinkBase)%(RecursiveDir)%(Filename)%(Extension)</Link>
</EmbeddedResource>
</ItemGroup>
<UsingTask TaskName="CheckForImplicitPackageReferenceOverrides" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<!-- Remove package references with metadata IsImplicitlyDefined = true, if there are other PackageReference items with the same identity -->
<Target Name="CheckForImplicitPackageReferenceOverrides" BeforeTargets="_CheckForInvalidConfigurationAndPlatform;CollectPackageReferences" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ImplicitPackageReferenceInformationLink>https://aka.ms/sdkimplicitrefs</ImplicitPackageReferenceInformationLink>
</PropertyGroup>
<CheckForImplicitPackageReferenceOverrides PackageReferenceItems="@(PackageReference)" MoreInformationLink="$(ImplicitPackageReferenceInformationLink)">
<Output TaskParameter="ItemsToRemove" ItemName="_PackageReferenceToRemove" />
</CheckForImplicitPackageReferenceOverrides>
<ItemGroup>
<!-- Note that the condition here is important, otherwise the Remove will operate based just on item identity and remove all items
that had duplicates, instead of leaving the ones without IsImplicitlyDefined set to true. -->
<PackageReference Remove="@(_PackageReferenceToRemove)" Condition="'%(PackageReference.IsImplicitlyDefined)' == 'true' " />
</ItemGroup>
</Target>
<!-- Running an SDK task before the NuGet restore task causes issues when running on .NET Framework because it causes the
.NET Standard NuGet DLLs to be loaded from the SDK path rather than the .NET Framework versions from the NuGet targets
path. To avoid this, we create a separate target to run before NuGet restore which deduplicates the items without
causing the SDK tasks to be loaded (but doesn't generate a warning message, because we need to load the tasks for that). -->
<PropertyGroup Condition="'$(DisableImplicitFrameworkReferences)' != 'true'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<_ImplicitPackageName Condition="'$(TargetFrameworkIdentifier)' == '.NETStandard'">NETStandard.Library</_ImplicitPackageName>
<_ImplicitPackageName Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp'">Microsoft.NETCore.App</_ImplicitPackageName>
</PropertyGroup>
<ItemGroup Condition="'$(_ImplicitPackageName)' != ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Filter PackageReference to items where the ItemSpec matches the implicit package name, and add IsImplicitlyDefined metadata
for items that don't have it-->
<_ImplicitPackageReferenceCheck Include="@(PackageReference-&gt;WithMetadataValue('Identity', '$(_ImplicitPackageName)'))">
<IsImplicitlyDefined Condition="'%(IsImplicitlyDefined)' != 'true' ">false</IsImplicitlyDefined>
</_ImplicitPackageReferenceCheck>
<!-- Now filter down to an item with just the implicit reference and another one with just the overriding reference -->
<_ImplicitPackageReference Include="@(_ImplicitPackageReferenceCheck-&gt;WithMetadataValue('IsImplicitlyDefined', 'true'))" />
<_OverridingPackageReference Include="@(_ImplicitPackageReferenceCheck-&gt;WithMetadataValue('IsImplicitlyDefined', 'false'))" />
</ItemGroup>
<Target Name="CheckForImplicitPackageReferenceOverridesBeforeRestore" BeforeTargets="_GetRestoreProjectStyle" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<!-- Remove both the implicit and the override item, if there was both an implicit and an override item -->
<PackageReference Remove="@(PackageReference-&gt;WithMetadataValue('Identity', '$(_ImplicitPackageName)'))" Condition="'@(_ImplicitPackageReference)' != '' And '@(_OverridingPackageReference)' != ''" />
<!-- Add the override item back -->
<PackageReference Include="@(_OverridingPackageReference)" Condition="'@(_ImplicitPackageReference)' != '' And '@(_OverridingPackageReference)' != ''" />
</ItemGroup>
</Target>
<UsingTask TaskName="CheckForDuplicateItems" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<Target Name="CheckForDuplicateItems" BeforeTargets="_CheckForInvalidConfigurationAndPlatform;CoreCompile" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<DefaultItemsMoreInformationLink>https://aka.ms/sdkimplicititems</DefaultItemsMoreInformationLink>
<!-- For the design-time build, we will continue on error and remove the duplicate items.
This is because otherwise there won't be any references to pass to the compiler, leading to design-time
compilation errors for every API that is used in the project. Amidst all the compile errors, it would
be easy to miss the duplicate items error which is the real source of the problem. -->
<CheckForDuplicateItemsContinueOnError>false</CheckForDuplicateItemsContinueOnError>
<CheckForDuplicateItemsContinueOnError Condition="'$(DesignTimeBuild)' == 'true'">ErrorAndContinue</CheckForDuplicateItemsContinueOnError>
</PropertyGroup>
<CheckForDuplicateItems Items="@(Compile)" ItemName="Compile" DefaultItemsEnabled="$(EnableDefaultItems)" DefaultItemsOfThisTypeEnabled="$(EnableDefaultCompileItems)" PropertyNameToDisableDefaultItems="EnableDefaultCompileItems" MoreInformationLink="$(DefaultItemsMoreInformationLink)" ContinueOnError="$(CheckForDuplicateItemsContinueOnError)">
<Output TaskParameter="DeduplicatedItems" ItemName="DeduplicatedCompileItems" />
</CheckForDuplicateItems>
<CheckForDuplicateItems Items="@(EmbeddedResource)" ItemName="EmbeddedResource" DefaultItemsEnabled="$(EnableDefaultItems)" DefaultItemsOfThisTypeEnabled="$(EnableDefaultEmbeddedResourceItems)" PropertyNameToDisableDefaultItems="EnableDefaultEmbeddedResourceItems" MoreInformationLink="$(DefaultItemsMoreInformationLink)" ContinueOnError="$(CheckForDuplicateItemsContinueOnError)">
<Output TaskParameter="DeduplicatedItems" ItemName="DeduplicatedEmbeddedResourceItems" />
</CheckForDuplicateItems>
<!-- Default content items are enabled by the Web SDK, not the .NET SDK, but we check it here for simplicity -->
<CheckForDuplicateItems Items="@(Content)" ItemName="Content" DefaultItemsEnabled="$(EnableDefaultItems)" DefaultItemsOfThisTypeEnabled="$(EnableDefaultContentItems)" PropertyNameToDisableDefaultItems="EnableDefaultContentItems" MoreInformationLink="$(DefaultItemsMoreInformationLink)" ContinueOnError="$(CheckForDuplicateItemsContinueOnError)">
<Output TaskParameter="DeduplicatedItems" ItemName="DeduplicatedContentItems" />
</CheckForDuplicateItems>
<ItemGroup Condition="'$(DesignTimeBuild)' == 'true' And '@(DeduplicatedCompileItems)' != ''">
<Compile Remove="@(Compile)" />
<Compile Include="@(DeduplicatedCompileItems)" />
</ItemGroup>
<ItemGroup Condition="'$(DesignTimeBuild)' == 'true' And '@(DeduplicatedEmbeddedResourceItems)' != ''">
<EmbeddedResource Remove="@(EmbeddedResource)" />
<EmbeddedResource Include="@(DeduplicatedEmbeddedResourceItems)" />
</ItemGroup>
<ItemGroup Condition="'$(DesignTimeBuild)' == 'true' And '@(DeduplicatedContentItems)' != ''">
<Content Remove="@(Content)" />
<Content Include="@(DeduplicatedContentItems)" />
</ItemGroup>
</Target>
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets
============================================================================================================================================
-->
<UsingTask TaskName="GenerateDepsFile" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<UsingTask TaskName="GenerateRuntimeConfigurationFiles" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<UsingTask TaskName="GetAssemblyVersion" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<UsingTask TaskName="GenerateSatelliteAssemblies" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<DisableStandardFrameworkResolution Condition="'$(DisableStandardFrameworkResolution)' == ''">$(_IsNETCoreOrNETStandard)</DisableStandardFrameworkResolution>
</PropertyGroup>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<GenerateRuntimeConfigurationFiles Condition=" '$(GenerateRuntimeConfigurationFiles)' == '' and '$(TargetFrameworkIdentifier)' == '.NETCoreApp' and '$(HasRuntimeOutput)' == 'true' ">true</GenerateRuntimeConfigurationFiles>
<UserRuntimeConfig Condition=" '$(UserRuntimeConfig)' == '' ">$(MSBuildProjectDirectory)/runtimeconfig.template.json</UserRuntimeConfig>
<GenerateSatelliteAssembliesForCore Condition=" '$(GenerateSatelliteAssembliesForCore)' == '' and '$(MSBuildRuntimeType)' == 'Core' ">true</GenerateSatelliteAssembliesForCore>
<ComputeNETCoreBuildOutputFiles Condition=" '$(ComputeNETCoreBuildOutputFiles)' == '' and '$(TargetFrameworkIdentifier)' == '.NETCoreApp'">true</ComputeNETCoreBuildOutputFiles>
</PropertyGroup>
<ItemGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<GenerateRuntimeConfigurationFilesInputs Include="$(ProjectAssetsFile)" />
<GenerateRuntimeConfigurationFilesInputs Include="$(UserRuntimeConfig)" Condition=" Exists($(UserRuntimeConfig)) " />
</ItemGroup>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ProjectDepsFileName Condition="'$(ProjectDepsFileName)' == ''">$(AssemblyName).deps.json</ProjectDepsFileName>
<ProjectDepsFilePath Condition="'$(ProjectDepsFilePath)' == ''">$(TargetDir)$(ProjectDepsFileName)</ProjectDepsFilePath>
<ProjectRuntimeConfigFileName Condition="'$(ProjectRuntimeConfigFileName)' == ''">$(AssemblyName).runtimeconfig.json</ProjectRuntimeConfigFileName>
<ProjectRuntimeConfigFilePath Condition="'$(ProjectRuntimeConfigFilePath)' == ''">$(TargetDir)$(ProjectRuntimeConfigFileName)</ProjectRuntimeConfigFilePath>
<ProjectRuntimeConfigDevFilePath Condition="'$(ProjectRuntimeConfigDevFilePath)' == ''">$(TargetDir)$(AssemblyName).runtimeconfig.dev.json</ProjectRuntimeConfigDevFilePath>
<IncludeMainProjectInDepsFile Condition=" '$(IncludeMainProjectInDepsFile)' == '' ">true</IncludeMainProjectInDepsFile>
</PropertyGroup>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<_NativeLibraryPrefix Condition="'$(_NativeLibraryPrefix)' == '' and !$(RuntimeIdentifier.StartsWith('win'))">lib</_NativeLibraryPrefix>
<_NativeLibraryExtension Condition="'$(_NativeLibraryExtension)' == '' and $(RuntimeIdentifier.StartsWith('win'))">.dll</_NativeLibraryExtension>
<_NativeLibraryExtension Condition="'$(_NativeLibraryExtension)' == '' and $(RuntimeIdentifier.StartsWith('osx'))">.dylib</_NativeLibraryExtension>
<_NativeLibraryExtension Condition="'$(_NativeLibraryExtension)' == ''">.so</_NativeLibraryExtension>
<_NativeExecutableExtension Condition="'$(_NativeExecutableExtension)' == '' and $(RuntimeIdentifier.StartsWith('win'))">.exe</_NativeExecutableExtension>
<_DotNetHostExecutableName>dotnet$(_NativeExecutableExtension)</_DotNetHostExecutableName>
<_DotNetAppHostExecutableName>apphost$(_NativeExecutableExtension)</_DotNetAppHostExecutableName>
<_DotNetHostPolicyLibraryName>$(_NativeLibraryPrefix)hostpolicy$(_NativeLibraryExtension)</_DotNetHostPolicyLibraryName>
<_DotNetHostFxrLibraryName>$(_NativeLibraryPrefix)hostfxr$(_NativeLibraryExtension)</_DotNetHostFxrLibraryName>
</PropertyGroup>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<_DefaultUserProfileRuntimeStorePath>$(HOME)</_DefaultUserProfileRuntimeStorePath>
<_DefaultUserProfileRuntimeStorePath Condition="'$(OS)' == 'Windows_NT'">$(USERPROFILE)</_DefaultUserProfileRuntimeStorePath>
<_DefaultUserProfileRuntimeStorePath>$([System.IO.Path]::Combine($(_DefaultUserProfileRuntimeStorePath), '.dotnet', 'store'))</_DefaultUserProfileRuntimeStorePath>
<UserProfileRuntimeStorePath Condition="'$(UserProfileRuntimeStorePath)' == ''">$(_DefaultUserProfileRuntimeStorePath)</UserProfileRuntimeStorePath>
</PropertyGroup>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<CoreBuildDependsOn>
$(CoreBuildDependsOn);
GenerateBuildDependencyFile;
GenerateBuildRuntimeConfigurationFiles
</CoreBuildDependsOn>
</PropertyGroup>
<!--
============================================================
GenerateBuildDependencyFile
Generates the $(project).deps.json file during Build
============================================================
-->
<Target Name="GenerateBuildDependencyFile" DependsOnTargets="_DefaultMicrosoftNETPlatformLibrary;&#xD;&#xA; _HandlePackageFileConflicts;&#xD;&#xA; _ComputeReferenceAssemblies" BeforeTargets="CopyFilesToOutputDirectory" Condition=" '$(GenerateDependencyFile)' == 'true'" Inputs="$(ProjectAssetsFile)" Outputs="$(ProjectDepsFilePath)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
Explicitly not passing any ExcludeFromPublishPackageReferences information during 'Build', since these dependencies
should be included during 'Build'. They are only excluded on 'Publish'.
-->
<GenerateDepsFile ProjectPath="$(MSBuildProjectFullPath)" AssetsFilePath="$(ProjectAssetsFile)" DepsFilePath="$(ProjectDepsFilePath)" TargetFramework="$(TargetFrameworkMoniker)" AssemblyName="$(AssemblyName)" AssemblyExtension="$(TargetExt)" AssemblyVersion="$(Version)" AssemblySatelliteAssemblies="@(IntermediateSatelliteAssembliesWithTargetPath)" ReferencePaths="@(ReferencePath)" ReferenceSatellitePaths="@(ReferenceSatellitePaths)" ReferenceAssemblies="@(_ReferenceAssemblies)" IncludeMainProject="$(IncludeMainProjectInDepsFile)" RuntimeIdentifier="$(RuntimeIdentifier)" PlatformLibraryName="$(MicrosoftNETPlatformLibrary)" FilesToSkip="@(_ConflictPackageFiles)" CompilerOptions="@(DependencyFileCompilerOptions)" IsSelfContained="$(SelfContained)" />
<ItemGroup>
<!-- Do this in an ItemGroup instead of as an output parameter of the GenerateDepsFile task so that it still gets added to the item set
during incremental builds when the task is skipped -->
<FileWrites Include="$(ProjectDepsFilePath)" Condition="Exists('$(ProjectDepsFilePath)')" />
</ItemGroup>
</Target>
<!--
============================================================
GenerateBuildRuntimeConfigurationFiles
Generates the $(project).runtimeconfig.json and $(project).runtimeconfig.dev.json files during Build
============================================================
-->
<Target Name="GenerateBuildRuntimeConfigurationFiles" DependsOnTargets="_DefaultMicrosoftNETPlatformLibrary" BeforeTargets="CopyFilesToOutputDirectory" Condition=" '$(GenerateRuntimeConfigurationFiles)' == 'true'" Inputs="@(GenerateRuntimeConfigurationFilesInputs)" Outputs="$(ProjectRuntimeConfigFilePath);$(ProjectRuntimeConfigDevFilePath)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<GenerateRuntimeConfigurationFiles AssetsFilePath="$(ProjectAssetsFile)" TargetFrameworkMoniker="$(TargetFrameworkMoniker)" TargetFramework="$(TargetFramework)" RuntimeConfigPath="$(ProjectRuntimeConfigFilePath)" RuntimeConfigDevPath="$(ProjectRuntimeConfigDevFilePath)" RuntimeIdentifier="$(RuntimeIdentifier)" PlatformLibraryName="$(MicrosoftNETPlatformLibrary)" UserRuntimeConfig="$(UserRuntimeConfig)" HostConfigurationOptions="@(RuntimeHostConfigurationOption)" AdditionalProbingPaths="@(AdditionalProbingPath)" IsSelfContained="$(SelfContained)" />
<ItemGroup>
<!-- Do this in an ItemGroup instead of as an output parameter of the GenerateDepsFile task so that it still gets added to the item set
during incremental builds when the task is skipped -->
<FileWrites Include="$(ProjectRuntimeConfigFilePath)" Condition="Exists('$(ProjectRuntimeConfigFilePath)')" />
<FileWrites Include="$(ProjectRuntimeConfigDevFilePath)" Condition="Exists('$(ProjectRuntimeConfigDevFilePath)')" />
</ItemGroup>
</Target>
<!-- Add runtimeconfig.json file to BuiltProjectOutputGroupOutput, so that it will get included in the NuGet package by the Pack target -->
<Target Name="AddRuntimeConfigFileToBuiltProjectOutputGroupOutput" Condition=" '$(GenerateRuntimeConfigurationFiles)' == 'true'" BeforeTargets="BuiltProjectOutputGroup" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<BuiltProjectOutputGroupOutput Include="$(ProjectRuntimeConfigFilePath)" FinalOutputPath="$(ProjectRuntimeConfigFilePath)" />
</ItemGroup>
</Target>
<!--
============================================================
DefaultRuntimeHostConfigurationOptions
Defaults @(RuntimeHostConfigurationOption) items based on MSBuild properties.
============================================================
-->
<ItemGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<RuntimeHostConfigurationOption Include="System.GC.Concurrent" Condition="'$(ConcurrentGarbageCollection)' != ''" Value="$(ConcurrentGarbageCollection)" />
<RuntimeHostConfigurationOption Include="System.GC.Server" Condition="'$(ServerGarbageCollection)' != ''" Value="$(ServerGarbageCollection)" />
<RuntimeHostConfigurationOption Include="System.GC.RetainVM" Condition="'$(RetainVMGarbageCollection)' != ''" Value="$(RetainVMGarbageCollection)" />
<RuntimeHostConfigurationOption Include="System.Threading.ThreadPool.MinThreads" Condition="'$(ThreadPoolMinThreads)' != ''" Value="$(ThreadPoolMinThreads)" />
<RuntimeHostConfigurationOption Include="System.Threading.ThreadPool.MaxThreads" Condition="'$(ThreadPoolMaxThreads)' != ''" Value="$(ThreadPoolMaxThreads)" />
</ItemGroup>
<!--
============================================================
DefaultAdditionalProbingPaths
Adds the default @(AdditionalProbingPath) items.
============================================================
-->
<ItemGroup Condition="'$(GenerateRuntimeConfigurationFiles)' == 'true' and '$(SkipDefaultAdditionalProbingPaths)' != 'true'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Note: can't use Path.Combine here since `|` is an illegal path character -->
<AdditionalProbingPath Include="$(UserProfileRuntimeStorePath)$([System.IO.Path]::DirectorySeparatorChar)|arch|$([System.IO.Path]::DirectorySeparatorChar)|tfm|" />
</ItemGroup>
<!--
============================================================
_ComputeNETCoreBuildOutputFiles
Computes any files that need to be copied to the build output folder for .NET Core.
============================================================
-->
<UsingTask TaskName="EmbedAppNameInHost" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<Target Name="_ComputeNETCoreBuildOutputFiles" DependsOnTargets="_ComputeActiveTFMFileDependencies" AfterTargets="ResolveReferences" BeforeTargets="AssignTargetPaths" Condition="'$(ComputeNETCoreBuildOutputFiles)' == 'true'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
During "build" and "run" of .NET Core projects, the assemblies coming from NuGet packages
are loaded from the NuGet cache. But, in order for a self-contained app to be runnable,
it requires a host in the output directory to load the app.
During "publish", all required assets are copied to the publish directory.
-->
<ItemGroup Condition="'$(SelfContained)' == 'true' and '$(RuntimeIdentifier)' != '' and '$(_IsExecutable)' == 'true'">
<_NETCoreNativeFileItems Include="@(_ActiveTFMFileDependencies-&gt;WithMetadataValue('FileGroup', 'NativeLibrary'))" />
<__NETCoreNativeItems Include="@(FileDefinitions)" Exclude="@(_NETCoreNativeFileItems)" />
<_NETCoreNativeItems Include="@(FileDefinitions)" Exclude="@(__NETCoreNativeItems)" />
<NativeNETCoreCopyLocalItems Include="%(_NETCoreNativeItems.ResolvedPath)" Condition="'%(_NETCoreNativeItems.FileName)%(_NETCoreNativeItems.Extension)' == '$(_DotNetHostPolicyLibraryName)' or&#xD;&#xA; '%(_NETCoreNativeItems.FileName)%(_NETCoreNativeItems.Extension)' == '$(_DotNetHostFxrLibraryName)'" />
<NativeRestoredAppHostNETCore Include="%(_NETCoreNativeItems.ResolvedPath)" Condition="'%(_NETCoreNativeItems.FileName)%(_NETCoreNativeItems.Extension)' == '$(_DotNetAppHostExecutableName)'" />
</ItemGroup>
<PropertyGroup Condition="'@(NativeRestoredAppHostNETCore)' != '' ">
<AppHostDestinationDirectoryPath>$(BaseIntermediateOutputPath)\$(TargetFramework)\$(RuntimeIdentifier)\host</AppHostDestinationDirectoryPath>
</PropertyGroup>
<NETSdkError Condition="'@(NativeRestoredAppHostNETCore-&gt;Count())' &gt; 1" ResourceName="MultipleFilesResolved" FormatArguments="$(_DotNetAppHostExecutableName)" />
<EmbedAppNameInHost AppHostSourcePath="@(NativeRestoredAppHostNETCore)" AppHostDestinationDirectoryPath="$(AppHostDestinationDirectoryPath)" AppBinaryName="$(AssemblyName)$(TargetExt)" Condition="'@(NativeRestoredAppHostNETCore)' != '' ">
<Output TaskParameter="ModifiedAppHostPath" ItemName="NativeAppHostNETCore" />
</EmbedAppNameInHost>
<ItemGroup Condition="'@(NativeAppHostNETCore)' == '' ">
<NativeAppHostNETCore Include="%(_NETCoreNativeItems.ResolvedPath)" Condition="'%(_NETCoreNativeItems.FileName)%(_NETCoreNativeItems.Extension)' == '$(_DotNetHostExecutableName)'" />
</ItemGroup>
<NETSdkError Condition="'@(NativeAppHostNETCore-&gt;Count())' &gt; 1" ResourceName="MultipleFilesResolved" FormatArguments="@(NativeAppHostNETCore)" />
<ItemGroup Condition="'@(NativeAppHostNETCore)' != '' ">
<NativeNETCoreCopyLocalItems Include="@(NativeAppHostNETCore)">
<!-- Rename the host executable to the app's name -->
<Link>$(AssemblyName)%(NativeAppHostNETCore.Extension)</Link>
</NativeNETCoreCopyLocalItems>
</ItemGroup>
<ItemGroup Condition="'$(SelfContained)' == 'true' and '$(RuntimeIdentifier)' != '' and '$(_IsExecutable)' == 'true'">
<AllNETCoreCopyLocalItems Include="@(NativeNETCoreCopyLocalItems)">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</AllNETCoreCopyLocalItems>
</ItemGroup>
<ItemGroup>
<!-- Use 'None' so we can rename files using the 'Link' metadata as necessary -->
<None Include="@(AllNETCoreCopyLocalItems)" />
</ItemGroup>
</Target>
<!--
============================================================
_ComputeReferenceAssemblies
Computes references that are only used at compile-time.
============================================================
-->
<Target Name="_ComputeReferenceAssemblies" DependsOnTargets="ResolveAssemblyReferences" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<_FrameworkReferenceAssemblies Include="@(ReferencePath)" Condition="%(ReferencePath.FrameworkFile) == 'true' or&#xD;&#xA; %(ReferencePath.ResolvedFrom) == 'ImplicitlyExpandDesignTimeFacades'" />
<!--
"ReferenceOnly" assemblies are assemblies that are only used at compile-time, and they can't be resolved
by the normal compile-assembly resolvers at runtime:
1. App local
2. NuGet/Package layout
3. ProgramFiles\Reference Assemblies
These assemblies need to be copied to the 'refs' folder for both build and publish.
-->
<_ReferenceOnlyAssemblies Include="@(ReferencePath)" Exclude="@(_FrameworkReferenceAssemblies)" Condition="%(ReferencePath.CopyLocal) != 'true' and &#xD;&#xA; %(ReferencePath.NuGetSourceType) == ''" />
<_ReferenceAssemblies Include="@(_FrameworkReferenceAssemblies)" />
<_ReferenceAssemblies Include="@(_ReferenceOnlyAssemblies)" />
</ItemGroup>
</Target>
<!--
============================================================
Run Information
The ProcessStart information that can be used to run this project.
============================================================
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<RunWorkingDirectory Condition="'$(RunWorkingDirectory)' == ''">$(StartWorkingDirectory)</RunWorkingDirectory>
</PropertyGroup>
<Choose xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<When Condition="'$(StartAction)' == 'Program'">
<PropertyGroup>
<RunCommand Condition="'$(RunCommand)' == ''">$(StartProgram)</RunCommand>
<RunArguments Condition="'$(RunArguments)' == ''">$(StartArguments)</RunArguments>
</PropertyGroup>
</When>
<When Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and '$(_IsExecutable)' == 'true'">
<PropertyGroup Condition="'$(SelfContained)' != 'true'">
<!-- TODO: https://github.com/dotnet/sdk/issues/20 Need to get the DotNetHost path from MSBuild -->
<RunCommand Condition="'$(RunCommand)' == ''">dotnet</RunCommand>
<_NetCoreRunArguments>exec "$(TargetPath)"</_NetCoreRunArguments>
<RunArguments Condition="'$(RunArguments)' == '' and '$(StartArguments)' != ''">$(_NetCoreRunArguments) $(StartArguments)</RunArguments>
<RunArguments Condition="'$(RunArguments)' == ''">$(_NetCoreRunArguments)</RunArguments>
</PropertyGroup>
<PropertyGroup Condition="'$(SelfContained)' == 'true'">
<RunCommand Condition="'$(RunCommand)' == ''">$(TargetDir)$(AssemblyName)$(_NativeExecutableExtension)</RunCommand>
<RunArguments Condition="'$(RunArguments)' == ''">$(StartArguments)</RunArguments>
</PropertyGroup>
</When>
<When Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework' and '$(_IsExecutable)' == 'true'">
<PropertyGroup>
<RunCommand Condition="'$(RunCommand)' == ''">$(TargetPath)</RunCommand>
<RunArguments Condition="'$(RunArguments)' == ''">$(StartArguments)</RunArguments>
</PropertyGroup>
</When>
</Choose>
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Ensure $(RunWorkingDirectory) is a full path -->
<RunWorkingDirectory Condition="'$(RunWorkingDirectory)' != '' and '$([System.IO.Path]::IsPathRooted($(RunWorkingDirectory)))' != 'true'">$([System.IO.Path]::GetFullPath($([System.IO.Path]::Combine('$(MSBuildProjectDirectory)', '$(RunWorkingDirectory)'))))</RunWorkingDirectory>
</PropertyGroup>
<!--
============================================================
CoreGenerateSatelliteAssemblies
============================================================
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<CreateSatelliteAssembliesDependsOn>
$(CreateSatelliteAssembliesDependsOn);
CoreGenerateSatelliteAssemblies
</CreateSatelliteAssembliesDependsOn>
</PropertyGroup>
<UsingTask TaskName="GetAssemblyAttributes" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<Target Name="CoreGenerateSatelliteAssemblies" DependsOnTargets="ResolveAssemblyReferences;_GetAssemblyInfoFromTemplateFile" Inputs="$(MSBuildAllProjects);@(_SatelliteAssemblyResourceInputs);$(IntermediateOutputPath)$(TargetName)$(TargetExt)" Outputs="$(IntermediateOutputPath)%(Culture)\$(TargetName).resources.dll" Condition="'@(_SatelliteAssemblyResourceInputs)' != '' and '$(GenerateSatelliteAssembliesForCore)' == 'true' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MakeDir Directories="@(_SatelliteAssemblyResourceInputs->'$(IntermediateOutputPath)%(Culture)')" />
<PropertyGroup>
<_AssemblyInfoFile>$(IntermediateOutputPath)%(_SatelliteAssemblyResourceInputs.Culture)\$(TargetName).resources.cs</_AssemblyInfoFile>
<_OutputAssembly>$(IntermediateOutputPath)%(_SatelliteAssemblyResourceInputs.Culture)\$(TargetName).resources.dll</_OutputAssembly>
</PropertyGroup>
<ItemGroup>
<SatelliteAssemblyAttribute Include="System.Reflection.AssemblyCultureAttribute" Condition="'%(_SatelliteAssemblyResourceInputs.Culture)' != ''">
<_Parameter1>%(_SatelliteAssemblyResourceInputs.Culture)</_Parameter1>
</SatelliteAssemblyAttribute>
</ItemGroup>
<WriteCodeFragment AssemblyAttributes="@(SatelliteAssemblyAttribute)" Language="$(Language)" OutputFile="$(_AssemblyInfoFile)">
<Output TaskParameter="OutputFile" ItemName="FileWrites" />
</WriteCodeFragment>
<Csc Resources="@(_SatelliteAssemblyResourceInputs)" Sources="$(_AssemblyInfoFile)" OutputAssembly="$(_OutputAssembly)" References="@(ReferencePath)" KeyContainer="$(KeyContainerName)" KeyFile="$(KeyOriginatorFile)" NoConfig="true" NoLogo="$(NoLogo)" NoStandardLib="$(NoCompilerStandardLib)" PublicSign="$(PublicSign)" DelaySign="$(DelaySign)" Deterministic="$(Deterministic)" DisabledWarnings="$(DisabledWarnings)" WarningLevel="$(WarningLevel)" WarningsAsErrors="$(WarningsAsErrors)" WarningsNotAsErrors="$(WarningsNotAsErrors)" TargetType="Library" ToolExe="$(CscToolExe)" ToolPath="$(CscToolPath)">
<Output TaskParameter="OutputAssembly" ItemName="FileWrites" />
</Csc>
</Target>
<Target Name="_GetAssemblyInfoFromTemplateFile" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<GetAssemblyAttributes PathToTemplateFile="$(IntermediateOutputPath)$(TargetName)$(TargetExt)">
<Output TaskParameter="AssemblyAttributes" ItemName="_AssemblyAttributesFromTemplateFile" />
</GetAssemblyAttributes>
<ItemGroup>
<SatelliteAssemblyAttribute Include="@(_AssemblyAttributesFromTemplateFile)" />
</ItemGroup>
</Target>
<!--
============================================================
_DefaultMicrosoftNETPlatformLibrary
.NET Core apps can have shared frameworks that are pre-installed on the target machine, thus the app is "portable"
to any machine that already has the shared framework installed. In order to enable this, a "platform" library
has to be declared. The platform library and its dependencies will be excluded from the runtime assemblies.
============================================================
-->
<Target Name="_DefaultMicrosoftNETPlatformLibrary" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(MicrosoftNETPlatformLibrary)' == ''">
<MicrosoftNETPlatformLibrary Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp'">Microsoft.NETCore.App</MicrosoftNETPlatformLibrary>
</PropertyGroup>
</Target>
<!--
============================================================
GetAllRuntimeIdentifiers
============================================================
-->
<Target Name="GetAllRuntimeIdentifiers" Returns="$(RuntimeIdentifiers);$(RuntimeIdentifier)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<!--
============================================================
InjectTargetPathMetadata
Update TargetPathWithTargetPlatformMoniker with target framework
identifier and version metadata. This is so that the
ImplicitlyExpandNETStandardFacades target can determine if a
referenced project needs the .NET Standard facades even if
the project hasn't been compiled to disk yet.
See https://github.com/dotnet/sdk/issues/1403 for more context
============================================================
-->
<ItemDefinitionGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<TargetPathWithTargetPlatformMoniker>
<TargetFrameworkIdentifier>$(TargetFrameworkIdentifier)</TargetFrameworkIdentifier>
<TargetFrameworkVersion>$(_TargetFrameworkVersionWithoutV)</TargetFrameworkVersion>
</TargetPathWithTargetPlatformMoniker>
</ItemDefinitionGroup>
<!--
============================================================
Project Capabilities
============================================================
-->
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and '$(_IsExecutable)' == 'true'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ProjectCapability Include="CrossPlatformExecutable" />
</ItemGroup>
<!-- Reference Manager capabilities -->
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ProjectCapability Remove="ReferenceManagerAssemblies" />
<ProjectCapability Remove="ReferenceManagerCOM" />
</ItemGroup>
<!-- Publish capabilities -->
<ItemGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ProjectCapability Include="FolderPublish" />
</ItemGroup>
<!--<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.DisableStandardFrameworkResolution.targets" Condition="'$(DisableStandardFrameworkResolution)' == 'true'" />-->
<!--
============================================================================================================================================
<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.GenerateAssemblyInfo.targets">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.GenerateAssemblyInfo.targets
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NET.GenerateAssemblyInfo.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.
***********************************************************************************************
-->
<!--
============================================================
GenerateAssemblyInfo
Generates assembly info source to intermediate directory
============================================================
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<GeneratedAssemblyInfoFile Condition="'$(GeneratedAssemblyInfoFile)' ==''">$(IntermediateOutputPath)$(MSBuildProjectName).AssemblyInfo$(DefaultLanguageSourceExtension)</GeneratedAssemblyInfoFile>
<GenerateAssemblyInfo Condition="'$(GenerateAssemblyInfo)' == ''">true</GenerateAssemblyInfo>
</PropertyGroup>
<PropertyGroup Condition="'$(GenerateAssemblyInfo)' == 'true'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<GenerateAssemblyCompanyAttribute Condition="'$(GenerateAssemblyCompanyAttribute)' == ''">true</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyConfigurationAttribute Condition="'$(GenerateAssemblyConfigurationAttribute)' == ''">true</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCopyrightAttribute Condition="'$(GenerateAssemblyCopyrightAttribute)' == ''">true</GenerateAssemblyCopyrightAttribute>
<GenerateAssemblyDescriptionAttribute Condition="'$(GenerateAssemblyDescriptionAttribute)' == ''">true</GenerateAssemblyDescriptionAttribute>
<GenerateAssemblyFileVersionAttribute Condition="'$(GenerateAssemblyFileVersionAttribute)' == ''">true</GenerateAssemblyFileVersionAttribute>
<GenerateAssemblyInformationalVersionAttribute Condition="'$(GenerateAssemblyInformationalVersionAttribute)' == ''">true</GenerateAssemblyInformationalVersionAttribute>
<GenerateAssemblyProductAttribute Condition="'$(GenerateAssemblyProductAttribute)' == ''">true</GenerateAssemblyProductAttribute>
<GenerateAssemblyTitleAttribute Condition="'$(GenerateAssemblyTitleAttribute)' == ''">true</GenerateAssemblyTitleAttribute>
<GenerateAssemblyVersionAttribute Condition="'$(GenerateAssemblyVersionAttribute)' == ''">true</GenerateAssemblyVersionAttribute>
<GenerateNeutralResourcesLanguageAttribute Condition="'$(GenerateNeutralResourcesLanguageAttribute)' == ''">true</GenerateNeutralResourcesLanguageAttribute>
</PropertyGroup>
<!--
Note that this must run before every invocation of CoreCompile to ensure that all compiler
runs see the generated assembly info. There is at least one scenario involving Xaml
where CoreCompile is invoked without other potential hooks such as Compile or CoreBuild,
etc., so we hook directly on to CoreCompile. Furthermore, we must run *after*
PrepareForBuild to ensure that the intermediate directory has been created.
-->
<Target Name="GenerateAssemblyInfo" BeforeTargets="CoreCompile" DependsOnTargets="PrepareForBuild;CoreGenerateAssemblyInfo" Condition="'$(GenerateAssemblyInfo)' == 'true'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<Target Name="GetAssemblyAttributes" DependsOnTargets="GetAssemblyVersion" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<AssemblyAttribute Include="System.Reflection.AssemblyCompanyAttribute" Condition="'$(Company)' != '' and '$(GenerateAssemblyCompanyAttribute)' == 'true'">
<_Parameter1>$(Company)</_Parameter1>
</AssemblyAttribute>
<AssemblyAttribute Include="System.Reflection.AssemblyConfigurationAttribute" Condition="'$(Configuration)' != '' and '$(GenerateAssemblyConfigurationAttribute)' == 'true'">
<_Parameter1>$(Configuration)</_Parameter1>
</AssemblyAttribute>
<AssemblyAttribute Include="System.Reflection.AssemblyCopyrightAttribute" Condition="'$(Copyright)' != '' and '$(GenerateAssemblyCopyrightAttribute)' == 'true'">
<_Parameter1>$(Copyright)</_Parameter1>
</AssemblyAttribute>
<AssemblyAttribute Include="System.Reflection.AssemblyDescriptionAttribute" Condition="'$(Description)' != '' and '$(GenerateAssemblyDescriptionAttribute)' == 'true'">
<_Parameter1>$(Description)</_Parameter1>
</AssemblyAttribute>
<AssemblyAttribute Include="System.Reflection.AssemblyFileVersionAttribute" Condition="'$(FileVersion)' != '' and '$(GenerateAssemblyFileVersionAttribute)' == 'true'">
<_Parameter1>$(FileVersion)</_Parameter1>
</AssemblyAttribute>
<AssemblyAttribute Include="System.Reflection.AssemblyInformationalVersionAttribute" Condition="'$(InformationalVersion)' != '' and '$(GenerateAssemblyInformationalVersionAttribute)' == 'true'">
<_Parameter1>$(InformationalVersion)</_Parameter1>
</AssemblyAttribute>
<AssemblyAttribute Include="System.Reflection.AssemblyProductAttribute" Condition="'$(Product)' != '' and '$(GenerateAssemblyProductAttribute)' == 'true'">
<_Parameter1>$(Product)</_Parameter1>
</AssemblyAttribute>
<AssemblyAttribute Include="System.Reflection.AssemblyTitleAttribute" Condition="'$(AssemblyTitle)' != '' and '$(GenerateAssemblyTitleAttribute)' == 'true'">
<_Parameter1>$(AssemblyTitle)</_Parameter1>
</AssemblyAttribute>
<AssemblyAttribute Include="System.Reflection.AssemblyVersionAttribute" Condition="'$(AssemblyVersion)' != '' and '$(GenerateAssemblyVersionAttribute)' == 'true'">
<_Parameter1>$(AssemblyVersion)</_Parameter1>
</AssemblyAttribute>
<AssemblyAttribute Include="System.Resources.NeutralResourcesLanguageAttribute" Condition="'$(NeutralLanguage)' != '' and '$(GenerateNeutralResourcesLanguageAttribute)' == 'true'">
<_Parameter1>$(NeutralLanguage)</_Parameter1>
</AssemblyAttribute>
</ItemGroup>
</Target>
<!--
To allow version changes to be respected on incremental builds (e.g. through CLI parameters),
create a hash of all assembly attributes so that the cache file will change with the calculated
assembly attribute values and msbuild will then execute CoreGenerateAssembly to generate a new file.
-->
<Target Name="CreateGeneratedAssemblyInfoInputsCacheFile" DependsOnTargets="GetAssemblyAttributes" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<GeneratedAssemblyInfoInputsCacheFile>$(IntermediateOutputPath)$(MSBuildProjectName).AssemblyInfoInputs.cache</GeneratedAssemblyInfoInputsCacheFile>
</PropertyGroup>
<Hash ItemsToHash="@(AssemblyAttribute->'%(Identity)%(_Parameter1)')">
<Output TaskParameter="HashResult" PropertyName="_AssemblyAttributesHash" />
</Hash>
<WriteLinesToFile Lines="$(_AssemblyAttributesHash)" File="$(GeneratedAssemblyInfoInputsCacheFile)" Overwrite="True" WriteOnlyWhenDifferent="True" />
<ItemGroup>
<FileWrites Include="$(GeneratedAssemblyInfoInputsCacheFile)" />
</ItemGroup>
</Target>
<Target Name="CoreGenerateAssemblyInfo" Condition="'$(Language)'=='VB' or '$(Language)'=='C#'" DependsOnTargets="CreateGeneratedAssemblyInfoInputsCacheFile" Inputs="$(GeneratedAssemblyInfoInputsCacheFile)" Outputs="$(GeneratedAssemblyInfoFile)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<!-- Ensure the generated assemblyinfo file is not already part of the Compile sources, as a workaround for https://github.com/dotnet/sdk/issues/114 -->
<Compile Remove="$(GeneratedAssemblyInfoFile)" />
</ItemGroup>
<WriteCodeFragment AssemblyAttributes="@(AssemblyAttribute)" Language="$(Language)" OutputFile="$(GeneratedAssemblyInfoFile)">
<Output TaskParameter="OutputFile" ItemName="Compile" />
<Output TaskParameter="OutputFile" ItemName="FileWrites" />
</WriteCodeFragment>
</Target>
<!--
==================================================================
GetAssemblyVersion
Parses the nuget package version set in $(Version) and returns
the implied $(AssemblyVersion) and $(FileVersion).
e.g.:
<Version>1.2.3-beta.4</Version>
implies:
<AssemblyVersion>1.2.3</AssemblyVersion>
<FileVersion>1.2.3</FileVersion>
Note that if $(AssemblyVersion) or $(FileVersion) are are already set, it
is considered an override of the default inference from $(Version) and they
are left unchanged by this target.
==================================================================
-->
<Target Name="GetAssemblyVersion" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<GetAssemblyVersion Condition="'$(AssemblyVersion)' == ''" NuGetVersion="$(Version)">
<Output TaskParameter="AssemblyVersion" PropertyName="AssemblyVersion" />
</GetAssemblyVersion>
<PropertyGroup>
<FileVersion Condition="'$(FileVersion)' == ''">$(AssemblyVersion)</FileVersion>
<InformationalVersion Condition="'$(InformationalVersion)' == ''">$(Version)</InformationalVersion>
</PropertyGroup>
</Target>
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets
============================================================================================================================================
-->
<!--
============================================================================================================================================
<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.ComposeStore.targets">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.ComposeStore.targets
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NET.ComposeStore.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.
***********************************************************************************************
-->
<!--
============================================================
ComposeStore
The main store entry point.
============================================================
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<Target Name="ComposeStore" DependsOnTargets="PrepareForComposeStore;&#xD;&#xA; PrepOptimizer;&#xD;&#xA; StoreWorkerMain;&#xD;&#xA; _CopyResolvedUnOptimizedFiles;&#xD;&#xA; StoreFinalizer;" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<!--
============================================================
StoreWorkerMain
Processes the store project files
============================================================
-->
<Target Name="StoreWorkerMain" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<_AllProjects Include="$(AdditionalProjects.Split('%3B'))" />
<_AllProjects Include="$(MSBuildProjectFullPath)" />
</ItemGroup>
<MSBuild Projects="%(_AllProjects.Identity)" Targets="StoreWorkerMapper" BuildinParallel="$(BuildinParallel)" Properties="ComposeWorkingDir=$(ComposeWorkingDir);&#xD;&#xA; PublishDir=$(PublishDir);&#xD;&#xA; StoreStagingDir=$(StoreStagingDir);&#xD;&#xA; TargetFramework=$(_TFM);&#xD;&#xA; JitPath=$(JitPath);&#xD;&#xA; Crossgen=$(Crossgen);&#xD;&#xA; DisableImplicitFrameworkReferences=true;&#xD;&#xA; SkipUnchangedFiles=$(SkipUnchangedFiles);&#xD;&#xA; PreserveStoreLayout=$(PreserveStoreLayout);&#xD;&#xA; CreateProfilingSymbols=$(CreateProfilingSymbols);&#xD;&#xA; StoreSymbolsStagingDir=$(StoreSymbolsStagingDir)" ContinueOnError="WarnAndContinue">
<Output ItemName="AllResolvedPackagesPublished" TaskParameter="TargetOutputs" />
</MSBuild>
</Target>
<!--
============================================================
StoreWorkerMapper
Processes each package specified in a store project file
============================================================
-->
<Target Name="StoreWorkerMapper" Returns="@(ResolvedPackagesFromMapper)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<PackageReferencesToStore Include="$(MSBuildProjectFullPath)">
<AdditionalProperties>
StorePackageName=%(PackageReference.Identity);
StorePackageVersion=%(PackageReference.Version);
ComposeWorkingDir=$(ComposeWorkingDir);
PublishDir=$(PublishDir);
StoreStagingDir=$(StoreStagingDir);
TargetFramework=$(TargetFramework);
RuntimeIdentifier=$(RuntimeIdentifier);
JitPath=$(JitPath);
Crossgen=$(Crossgen);
SkipUnchangedFiles=$(SkipUnchangedFiles);
PreserveStoreLayout=$(PreserveStoreLayout);
CreateProfilingSymbols=$(CreateProfilingSymbols);
StoreSymbolsStagingDir=$(StoreSymbolsStagingDir);
DisableImplicitFrameworkReferences=false;
</AdditionalProperties>
</PackageReferencesToStore>
</ItemGroup>
<!-- Restore phase -->
<MSBuild Projects="@(PackageReferencesToStore)" Targets="RestoreForComposeStore" BuildInParallel="$(BuildInParallel)" ContinueOnError="WarnAndContinue" />
<!-- Resolve phase-->
<MSBuild Projects="@(PackageReferencesToStore)" Targets="StoreResolver" Properties="MSBuildProjectExtensionsPath=$(ComposeWorkingDir)\%(PackageReference.Identity)_$([System.String]::Copy('%(PackageReference.Version)').Replace('*','-'))\;" BuildInParallel="$(BuildInParallel)" ContinueOnError="WarnAndContinue">
<Output ItemName="ResolvedPackagesFromMapper" TaskParameter="TargetOutputs" />
</MSBuild>
</Target>
<Target Name="StoreResolver" Returns="@(ResolvedPackagesPublished)" DependsOnTargets="PrepforRestoreForComposeStore;&#xD;&#xA; StoreWorkerPerformWork" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<Target Name="StoreWorkerPerformWork" DependsOnTargets="ComputeAndCopyFilesToStoreDirectory;" Condition="Exists($(StoreWorkerWorkingDir))" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<!--
============================================================
StoreFinalizer
Cleans up and produces artifacts after completion of store
============================================================
-->
<UsingTask TaskName="RemoveDuplicatePackageReferences" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<Target Name="StoreFinalizer" DependsOnTargets="StoreWorkerMain;&#xD;&#xA; _CopyResolvedOptimizedFiles" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<RemoveDuplicatePackageReferences InputPackageReferences="@(AllResolvedPackagesPublished)">
<Output TaskParameter="UniquePackageReferences" ItemName="AllResolvedPackagesPublishedAfterFilter" />
</RemoveDuplicatePackageReferences>
<ItemGroup>
<ListOfPackageReference Include="@(AllResolvedPackagesPublishedAfterFilter -> '%20%20%20&lt;Package Id=&quot;%(Identity)&quot; Version =&quot;%(Version)&quot;/&gt;')" />
</ItemGroup>
<PropertyGroup>
<_StoreArtifactContent><![CDATA[
<StoreArtifacts>
@(ListOfPackageReference)
</StoreArtifacts>
]]></_StoreArtifactContent>
</PropertyGroup>
<WriteLinesToFile File="$(StoreArtifactXml)" Lines="$(_StoreArtifactContent)" Overwrite="true" />
<Message Text="Files were composed in $(PublishDir)" Importance="high" />
<Message Text="The list of packages stored is in $(StoreArtifactXml) " Importance="high" />
<RemoveDir Condition="'$(PreserveComposeWorkingDir)' != 'true'" Directories="$(ComposeWorkingDir)" ContinueOnError="WarnAndContinue" />
</Target>
<!--
============================================================
_CopyResolvedUnOptimizedFiles
Copy OptimizedResolvedFileToPublish items to the publish directory.
============================================================
-->
<Target Name="_CopyResolvedOptimizedFiles" DependsOnTargets="StoreWorkerMain;" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<_OptimizedResolvedFileToPublish Include="$(StoreStagingDir)\**\*.*" />
<_OptimizedSymbolFileToPublish Include="$(StoreSymbolsStagingDir)\**\*.*" />
</ItemGroup>
<Copy SourceFiles="@(_OptimizedResolvedFileToPublish)" DestinationFolder="$(PublishDir)%(RecursiveDir)" OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" Condition="'@(_OptimizedResolvedFileToPublish)' != ''" SkipUnchangedFiles="$(SkipUnchangedFiles)">
<Output TaskParameter="DestinationFiles" ItemName="FileWrites" />
</Copy>
<Copy SourceFiles="@(_OptimizedSymbolFileToPublish)" DestinationFolder="$(ProfilingSymbolsDir)%(RecursiveDir)" OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" Condition="'@(_OptimizedSymbolFileToPublish)' != ''" SkipUnchangedFiles="$(SkipUnchangedFiles)">
<Output TaskParameter="DestinationFiles" ItemName="FileWrites" />
</Copy>
</Target>
<!--
============================================================
PrepareForComposeStore
Prepare the prerequisites for ComposeStore.
============================================================
-->
<Target Name="PrepareForComposeStore" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PreserveStoreLayout Condition="'$(PreserveStoreLayout)' == ''">true</PreserveStoreLayout>
<SkipOptimization Condition="'$(RuntimeIdentifier)' == ''">true</SkipOptimization>
<_TFM Condition="'$(_TFM)' == ''">$(TargetFramework)</_TFM>
<SkipUnchangedFiles Condition="'$(SkipUnchangedFiles)' == ''">true</SkipUnchangedFiles>
</PropertyGroup>
<NETSdkError Condition="'2.0' &gt; '$(_TargetFrameworkVersionWithoutV)'" ResourceName="NU1008" FormatArguments="$(TargetFrameworkMoniker)" />
<NETSdkError Condition="'$(RuntimeIdentifier)' =='' and '$(_PureManagedAssets)' == ''" ResourceName="RuntimeIdentifierWasNotSpecified" />
<NETSdkError Condition="'$(_TFM)' ==''" ResourceName="AtLeastOneTargetFrameworkMustBeSpecified" />
<PropertyGroup>
<DefaultComposeDir>$(UserProfileRuntimeStorePath)</DefaultComposeDir>
<_ProfilingSymbolsDirectoryName>symbols</_ProfilingSymbolsDirectoryName>
<DefaultProfilingSymbolsDir>$([System.IO.Path]::Combine($(DefaultComposeDir), $(_ProfilingSymbolsDirectoryName)))</DefaultProfilingSymbolsDir>
<ProfilingSymbolsDir Condition="'$(ProfilingSymbolsDir)' == '' and '$(ComposeDir)' != ''">$([System.IO.Path]::Combine($(ComposeDir), $(_ProfilingSymbolsDirectoryName)))</ProfilingSymbolsDir>
<ProfilingSymbolsDir Condition="'$(ProfilingSymbolsDir)' != '' and '$(DoNotDecorateComposeDir)' != 'true'">$([System.IO.Path]::Combine($(ProfilingSymbolsDir), $(PlatformTarget)))</ProfilingSymbolsDir>
<ProfilingSymbolsDir Condition="'$(ProfilingSymbolsDir)' == ''">$(DefaultProfilingSymbolsDir)</ProfilingSymbolsDir>
<ProfilingSymbolsDir Condition="'$(DoNotDecorateComposeDir)' != 'true'">$([System.IO.Path]::Combine($(ProfilingSymbolsDir), $(_TFM)))</ProfilingSymbolsDir>
<ProfilingSymbolsDir Condition="!HasTrailingSlash('$(ProfilingSymbolsDir)')">$(ProfilingSymbolsDir)\</ProfilingSymbolsDir>
<ComposeDir Condition="'$(ComposeDir)' == ''">$(DefaultComposeDir)</ComposeDir>
<ComposeDir Condition="'$(DoNotDecorateComposeDir)' != 'true'">$([System.IO.Path]::Combine($(ComposeDir), $(PlatformTarget)))</ComposeDir>
<ComposeDir Condition="'$(DoNotDecorateComposeDir)' != 'true'">$([System.IO.Path]::Combine($(ComposeDir), $(_TFM)))</ComposeDir>
<StoreArtifactXml>$([System.IO.Path]::Combine($(ComposeDir),"artifact.xml"))</StoreArtifactXml>
<PublishDir>$([System.IO.Path]::GetFullPath($(ComposeDir)))</PublishDir>
<_RandomFileName>$([System.IO.Path]::GetRandomFileName())</_RandomFileName>
<TEMP Condition="'$(TEMP)' == ''">$([System.IO.Path]::GetTempPath())</TEMP>
<ComposeWorkingDir Condition="'$(ComposeWorkingDir)' == ''">$([System.IO.Path]::Combine($(TEMP), $(_RandomFileName)))</ComposeWorkingDir>
<ComposeWorkingDir>$([System.IO.Path]::GetFullPath($(ComposeWorkingDir)))</ComposeWorkingDir>
<StoreStagingDir>$([System.IO.Path]::Combine($(ComposeWorkingDir),"StagingDir"))</StoreStagingDir>
<!-- Will contain optimized managed assemblies in nuget cache layout -->
<StoreSymbolsStagingDir>$([System.IO.Path]::Combine($(ComposeWorkingDir),"SymbolsStagingDir"))</StoreSymbolsStagingDir>
<!-- Ensure any PublishDir has a trailing slash, so it can be concatenated -->
<PublishDir Condition="!HasTrailingSlash('$(PublishDir)')">$(PublishDir)\</PublishDir>
</PropertyGroup>
<PropertyGroup Condition="'$(CreateProfilingSymbols)' == ''">
<!-- There is no support for profiling symbols on OSX -->
<CreateProfilingSymbols Condition="$(RuntimeIdentifier.StartsWith('osx'))">false</CreateProfilingSymbols>
<CreateProfilingSymbols Condition="'$(CreateProfilingSymbols)' == ''">true</CreateProfilingSymbols>
</PropertyGroup>
<NETSdkError Condition="Exists($(ComposeWorkingDir))" ResourceName="FolderAlreadyExists" FormatArguments="$(ComposeWorkingDir)" />
<MakeDir Directories="$(PublishDir)" />
<MakeDir Directories="$(StoreStagingDir)" />
</Target>
<Target Name="PrepforRestoreForComposeStore" DependsOnTargets="_DefaultMicrosoftNETPlatformLibrary" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<StorePackageVersionForFolderName>$(StorePackageVersion.Replace('*','-'))</StorePackageVersionForFolderName>
<StoreWorkerWorkingDir>$([System.IO.Path]::Combine($(ComposeWorkingDir),"$(StorePackageName)_$(StorePackageVersionForFolderName)"))</StoreWorkerWorkingDir>
<_PackageProjFile>$([System.IO.Path]::Combine($(StoreWorkerWorkingDir), "Restore.csproj"))</_PackageProjFile>
<BaseIntermediateOutputPath>$(StoreWorkerWorkingDir)\</BaseIntermediateOutputPath>
<ProjectAssetsFile>$(BaseIntermediateOutputPath)\project.assets.json</ProjectAssetsFile>
</PropertyGroup>
<PropertyGroup>
<PackagesToPrune>$(MicrosoftNETPlatformLibrary)</PackagesToPrune>
<SelfContained Condition="'$(SelfContained)' == ''">true</SelfContained>
</PropertyGroup>
</Target>
<!--
============================================================
RestoreForComposeStore
Restores the package
============================================================
-->
<Target Name="RestoreForComposeStore" DependsOnTargets="PrepforRestoreForComposeStore;" Condition="!Exists($(StoreWorkerWorkingDir))" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MakeDir Directories="$(StoreWorkerWorkingDir)" />
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="Restore" Properties="RestoreGraphProjectInput=$(MSBuildProjectFullPath);&#xD;&#xA; RestoreOutputPath=$(BaseIntermediateOutputPath);&#xD;&#xA; StorePackageName=$(StorePackageName);&#xD;&#xA; StorePackageVersion=$(StorePackageVersion);&#xD;&#xA; RuntimeIdentifier=$(RuntimeIdentifier);&#xD;&#xA; TargetFramework=$(TargetFramework);" />
</Target>
<!--
============================================================
ComputeAndCopyFilesToStoreDirectory
Computes the list of all files to copy to the publish directory and then publishes them.
============================================================
-->
<Target Name="ComputeAndCopyFilesToStoreDirectory" DependsOnTargets="ComputeFilesToStore;&#xD;&#xA; CopyFilesToStoreDirectory" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<!--
============================================================
CopyFilesToStoreDirectory
Copy all build outputs, satellites and other necessary files to the publish directory.
============================================================
-->
<Target Name="CopyFilesToStoreDirectory" DependsOnTargets="_CopyResolvedUnOptimizedFiles" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<!--
============================================================
_CopyResolvedUnOptimizedFiles
Copy _UnOptimizedResolvedFileToPublish items to the publish directory.
============================================================
-->
<Target Name="_CopyResolvedUnOptimizedFiles" DependsOnTargets="_ComputeResolvedFilesToStoreTypes;&#xD;&#xA; _RunOptimizer" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Copy SourceFiles="@(_UnOptimizedResolvedFileToPublish)" DestinationFiles="$(PublishDir)%(_UnOptimizedResolvedFileToPublish.DestinationSubPath)" OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" SkipUnchangedFiles="$(SkipUnchangedFiles)">
<Output TaskParameter="DestinationFiles" ItemName="FileWrites" />
</Copy>
</Target>
<!--
============================================================
_ComputeResolvedFilesToStoreTypes
============================================================
-->
<Target Name="_ComputeResolvedFilesToStoreTypes" DependsOnTargets="_GetResolvedFilesToStore;_SplitResolvedFiles;" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<!--
============================================================
_SplitResolvedFiles
Splits ResolvedFileToPublish items into 'managed' and 'unmanaged' buckets.
============================================================
-->
<Target Name="_SplitResolvedFiles" Condition="$(SkipOptimization) !='true' " DependsOnTargets="_GetResolvedFilesToStore" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<_ManagedResolvedFileToPublishCandidates Include="@(ResolvedFileToPublish)" Condition="'%(ResolvedFileToPublish.AssetType)'=='runtime'" />
<_UnOptimizedResolvedFileToPublish Include="@(ResolvedFileToPublish)" Condition="'%(ResolvedFileToPublish.AssetType)'!='runtime'" />
</ItemGroup>
<PropertyGroup>
<SkipOptimization Condition="'@(_ManagedResolvedFileToPublishCandidates)'==''">true</SkipOptimization>
</PropertyGroup>
</Target>
<!--
============================================================
_GetResolvedFilesToStore
============================================================
-->
<Target Name="_GetResolvedFilesToStore" Condition="$(SkipOptimization) == 'true' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<_UnOptimizedResolvedFileToPublish Include="@(ResolvedFileToPublish)" />
</ItemGroup>
</Target>
<!--
============================================================
ComputeFilesToStore
Gathers all the files that need to be copied to the publish directory.
============================================================
-->
<UsingTask TaskName="FilterResolvedFiles" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<Target Name="ComputeFilesToStore" DependsOnTargets="_ComputeNetPublishAssets;&#xD;&#xA; _ComputeCopyToPublishDirectoryItems" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<CopyBuildOutputToPublishDirectory Condition="'$(CopyBuildOutputToPublishDirectory)'==''">true</CopyBuildOutputToPublishDirectory>
<CopyOutputSymbolsToPublishDirectory Condition="'$(CopyOutputSymbolsToPublishDirectory)'==''">true</CopyOutputSymbolsToPublishDirectory>
</PropertyGroup>
<FilterResolvedFiles AssetsFilePath="$(ProjectAssetsFile)" ResolvedFiles="@(ResolvedAssembliesToPublish)" PackagesToPrune="$(PackagesToPrune)" TargetFramework="$(TargetFrameworkMoniker)" RuntimeIdentifier="$(RuntimeIdentifier)" IsSelfContained="$(SelfContained)">
<Output TaskParameter="AssembliesToPublish" ItemName="ResolvedFileToPublish" />
<Output TaskParameter="PublishedPackges" ItemName="PackagesThatWereResolved" />
</FilterResolvedFiles>
<ItemGroup>
<ResolvedPackagesPublished Include="@(PackagesThatWereResolved)" Condition="$(DoNotTrackPackageAsResolved) !='true'" />
</ItemGroup>
</Target>
<!--
============================================================
PrepRestoreForStoreProjects
Removes specified PackageReference for store and inserts the specified StorePackageName
============================================================
-->
<Target Name="PrepRestoreForStoreProjects" BeforeTargets="_GenerateProjectRestoreGraphPerFramework;" Condition="'$(StorePackageName)' != ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<PackageReference Remove="@(PackageReference)" Condition="'%(PackageReference.IsImplicitlyDefined)' != 'true'" />
<PackageReference Include="$(StorePackageName)" Version="$(StorePackageVersion)" />
</ItemGroup>
</Target>
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets
============================================================================================================================================
-->
<!--
============================================================================================================================================
<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.CrossGen.targets">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.CrossGen.targets
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NET.CrossGen.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.
***********************************************************************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<!--
============================================================
PrepOptimizer
Sets up the common infrastructure for the optimization phase
Outputs:
JitPath
Crossgen
============================================================
-->
<Target Name="PrepOptimizer" DependsOnTargets="_RestoreCrossgen;" Condition="$(SkipOptimization) != 'true' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Get the coreclr path -->
<ItemGroup>
<_CoreclrResolvedPath Include="@(CrossgenResolvedAssembliesToPublish)" Condition="'%(CrossgenResolvedAssembliesToPublish.Filename)'=='coreclr'" />
<_CoreclrResolvedPath Include="@(CrossgenResolvedAssembliesToPublish)" Condition="'%(CrossgenResolvedAssembliesToPublish.Filename)'=='libcoreclr'" />
<_JitResolvedPath Include="@(CrossgenResolvedAssembliesToPublish)" Condition="'%(CrossgenResolvedAssembliesToPublish.Filename)'=='clrjit'" />
<_JitResolvedPath Include="@(CrossgenResolvedAssembliesToPublish)" Condition="'%(CrossgenResolvedAssembliesToPublish.Filename)'=='libclrjit'" />
</ItemGroup>
<NETSdkError Condition="'@(_CoreclrResolvedPath-&gt;Count())' &gt; 1" ResourceName="MultipleFilesResolved" FormatArguments="coreclr" />
<NETSdkError Condition="'@(_CoreclrResolvedPath)'== ''" ResourceName="UnableToFindResolvedPath" FormatArguments="coreclr" />
<NETSdkError Condition="'@(_JitResolvedPath-&gt;Count())' &gt; 1" ResourceName="MultipleFilesResolved" FormatArguments="jit" />
<NETSdkError Condition="'@(_JitResolvedPath)'== ''" ResourceName="UnableToFindResolvedPath" FormatArguments="jit" />
<!-- Get the crossgen and jit path-->
<PropertyGroup>
<_CoreclrPath>@(_CoreclrResolvedPath)</_CoreclrPath>
<JitPath>@(_JitResolvedPath)</JitPath>
<_CoreclrDir>$([System.IO.Path]::GetDirectoryName($(_CoreclrPath)))</_CoreclrDir>
<_CoreclrPkgDir>$([System.IO.Path]::Combine($(_CoreclrDir),"..\..\..\"))</_CoreclrPkgDir>
<CrossgenDir>$([System.IO.Path]::Combine($(_CoreclrPkgDir),"tools"))</CrossgenDir>
<!-- TODO override with rid specific tools path for x-arch -->
<Crossgen>$([System.IO.Path]::Combine($(CrossgenDir),"crossgen"))</Crossgen>
<Crossgen Condition="'$(OS)' == 'Windows_NT'">$([System.IO.Path]::Combine($(CrossgenDir),"crossgen.exe"))</Crossgen>
</PropertyGroup>
<NETSdkError Condition="!Exists($(Crossgen))" ResourceName="UnableToFindResolvedPath" FormatArguments="$(Crossgen)" />
<!-- Copy crossgen into the netcoreapp folder to ensure it can load Microsoft.DiaSymReader.Native when creating PDBs -->
<Copy SourceFiles="$(Crossgen)" DestinationFolder="$(_NetCoreRefDir)" OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" UseHardlinksIfPossible="$(CreateHardLinksForPublishFilesIfPossible)" UseSymboliclinksIfPossible="$(CreateSymbolicLinksForPublishFilesIfPossible)">
<Output TaskParameter="DestinationFiles" ItemName="FileWrites" />
</Copy>
<PropertyGroup>
<Crossgen>$([System.IO.Path]::GetFullPath($([System.IO.Path]::Combine($(_NetCoreRefDir), $([System.IO.Path]::GetFileName($(Crossgen)))))))</Crossgen>
</PropertyGroup>
</Target>
<!--
============================================================
_RunOptimizer
Start the optimization phase
============================================================
-->
<Target Name="_RunOptimizer" DependsOnTargets="_InitializeBasicProps;&#xD;&#xA; _ComputeResolvedFilesToStoreTypes;&#xD;&#xA; _SetupStageForCrossgen" Condition="$(SkipOptimization) != 'true' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<AssembliestoCrossgen Include="$(MSBuildProjectFullPath)">
<Properties>
CrossgenExe=$(Crossgen);
CrossgenJit=$(JitPath);
CrossgenInputAssembly=%(_ManagedResolvedFilesToOptimize.Fullpath);
CrossgenOutputAssembly=$(_RuntimeOptimizedDir)$(DirectorySeparatorChar)%(FileName)%(Extension);
CrossgenSubOutputPath=%(DestinationSubPath);
_RuntimeOptimizedDir=$(_RuntimeOptimizedDir);
PublishDir=$(StoreStagingDir);
CrossgenPlatformAssembliesPath=$(_RuntimeRefDir)$(PathSeparator)$(_NetCoreRefDir);
CreateProfilingSymbols=$(CreateProfilingSymbols);
StoreSymbolsStagingDir=$(StoreSymbolsStagingDir);
_RuntimeSymbolsDir=$(_RuntimeSymbolsDir)
</Properties>
</AssembliestoCrossgen>
</ItemGroup>
<!-- CrossGen the assemblies -->
<MSBuild Projects="@(AssembliestoCrossgen)" Targets="RunCrossGen" BuildInParallel="$(BuildInParallel)" Condition="'@(_ManagedResolvedFilesToOptimize)' != ''" />
</Target>
<!--
============================================================
RunCrossGen
Target Encapsulating the crossgen command
============================================================
-->
<Target Name="RunCrossGen" DependsOnTargets="_InitializeBasicProps;" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<CrossgenProfilingSymbolsOutputDirectory>$([System.IO.Path]::GetDirectoryName($(_RuntimeSymbolsDir)\$(CrossgenSubOutputPath)))</CrossgenProfilingSymbolsOutputDirectory>
<CrossgenSymbolsStagingDirectory>$([System.IO.Path]::GetDirectoryName($(StoreSymbolsStagingDir)\$(CrossgenSubOutputPath)))</CrossgenSymbolsStagingDirectory>
<CrossgenCommandline>$(CrossgenExe) -readytorun -in $(CrossgenInputAssembly) -out $(CrossgenOutputAssembly) -jitpath $(CrossgenJit) -platform_assemblies_paths $(CrossgenPlatformAssembliesPath)</CrossgenCommandline>
<CreateProfilingSymbolsOptionName Condition="'$(OS)' == 'Windows_NT'">CreatePDB</CreateProfilingSymbolsOptionName>
<CreateProfilingSymbolsOptionName Condition="'$(CreateProfilingSymbolsOptionName)' == ''">CreatePerfMap</CreateProfilingSymbolsOptionName>
</PropertyGroup>
<Message Text="CrossgenCommandline: $(CrossgenCommandline)" />
<!-- Workaround for https://github.com/NuGet/Home/issues/4424 -->
<Exec Command="chmod 755 $(CrossgenExe)" Condition="'$(OS)' != 'Windows_NT'" />
<!--Optimization skip if the assembly is already present in the final output directory-->
<Exec Command="$(CrossgenCommandline)" Condition="!Exists($([System.IO.Path]::Combine($(PublishDir),$(CrossgenSubOutputPath))))" />
<Copy SourceFiles="$(CrossgenOutputAssembly)" DestinationFiles="$(PublishDir)\$(CrossgenSubOutputPath)" OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" Condition="!Exists($([System.IO.Path]::Combine($(PublishDir),$(CrossgenSubOutputPath))))">
<Output TaskParameter="DestinationFiles" ItemName="FileWrites" />
</Copy>
<!-- Create profiling symbols if requested -->
<MakeDir Directories="$(CrossgenProfilingSymbolsOutputDirectory)" Condition="'$(CreateProfilingSymbols)' == 'true' and Exists($(CrossgenOutputAssembly))" />
<Exec Command="$(CrossgenExe) -readytorun -platform_assemblies_paths $(CrossgenPlatformAssembliesPath) -$(CreateProfilingSymbolsOptionName) $(CrossgenProfilingSymbolsOutputDirectory) $(CrossgenOutputAssembly)" Condition="'$(CreateProfilingSymbols)' == 'true' and Exists($(CrossgenOutputAssembly))" />
<ItemGroup>
<_ProfilingSymbols Include="$(CrossgenProfilingSymbolsOutputDirectory)\*" Condition="'$(CreateProfilingSymbols)' == 'true'" />
</ItemGroup>
<Copy SourceFiles="@(_ProfilingSymbols)" DestinationFolder="$(CrossgenSymbolsStagingDirectory)" Condition="'$(CreateProfilingSymbols)' == 'true'" OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)">
<Output TaskParameter="DestinationFiles" ItemName="FileWrites" />
</Copy>
</Target>
<Target Name="_InitializeBasicProps" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PathSeparator>$([System.IO.Path]::PathSeparator)</PathSeparator>
<DirectorySeparatorChar>$([System.IO.Path]::DirectorySeparatorChar)</DirectorySeparatorChar>
</PropertyGroup>
</Target>
<!--
============================================================
_GetCrossgenProps
Generates props used by Crossgen
============================================================
-->
<Target Name="_GetCrossgenProps" Condition="$(SkipOptimization) != 'true' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_CrossProjFileDir>$([System.IO.Path]::Combine($(ComposeWorkingDir),"Optimize"))</_CrossProjFileDir>
<_NetCoreRefDir>$([System.IO.Path]::Combine($(_CrossProjFileDir), "netcoreapp"))</_NetCoreRefDir>
<!-- flat netcore app assemblies-->
</PropertyGroup>
<MakeDir Directories="$(_CrossProjFileDir)" />
<PropertyGroup>
<_CrossProjAssetsFile>$([System.IO.Path]::Combine($(_CrossProjFileDir), project.assets.json))</_CrossProjAssetsFile>
</PropertyGroup>
</Target>
<!--
============================================================
_SetupStageForCrossgen
============================================================
-->
<Target Name="_SetupStageForCrossgen" DependsOnTargets="_GetCrossgenProps;" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_RuntimeRefDir>$([System.IO.Path]::Combine($(StoreWorkerWorkingDir), "runtimeref"))</_RuntimeRefDir>
<!-- flat app managed assemblies -->
<_RuntimeOptimizedDir>$([System.IO.Path]::Combine($(StoreWorkerWorkingDir), "runtimopt"))</_RuntimeOptimizedDir>
<!-- optimized app managed assemblies in nuget cache layout -->
<_RuntimeSymbolsDir>$([System.IO.Path]::Combine($(StoreWorkerWorkingDir), "runtimesymbols"))</_RuntimeSymbolsDir>
</PropertyGroup>
<ItemGroup>
<_ManagedResolvedFilesToOptimize Include="@(_ManagedResolvedFileToPublishCandidates)" />
</ItemGroup>
<MakeDir Directories="$(_RuntimeOptimizedDir)" />
<MakeDir Directories="$(_RuntimeSymbolsDir)" Condition="'$(CreateProfilingSymbols)' == 'true'" />
<!-- Copy managed files to a flat temp directory for passing it as ref -->
<Copy SourceFiles="@(_ManagedResolvedFilesToOptimize)" DestinationFolder="$(_RuntimeRefDir)" OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" UseHardlinksIfPossible="$(CreateHardLinksForPublishFilesIfPossible)" UseSymboliclinksIfPossible="$(CreateSymbolicLinksForPublishFilesIfPossible)">
<Output TaskParameter="DestinationFiles" ItemName="FileWrites" />
</Copy>
</Target>
<!--
============================================================
_RestoreCrossgen
Restores netcoreapp and publishes it to a temp directory
============================================================
-->
<Target Name="_RestoreCrossgen" DependsOnTargets="PrepforRestoreForComposeStore;&#xD;&#xA; _SetupStageForCrossgen;" Condition="$(SkipOptimization) != 'true' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="Restore" Properties="RestoreGraphProjectInput=$(MSBuildProjectFullPath);&#xD;&#xA; DisableImplicitFrameworkReferences=true;&#xD;&#xA; RestoreOutputPath=$(_CrossProjFileDir);&#xD;&#xA; StorePackageName=$(MicrosoftNETPlatformLibrary);&#xD;&#xA; StorePackageVersion=$(RuntimeFrameworkVersion);" />
<ResolvePublishAssemblies ProjectPath="$(MSBuildProjectFullPath)" AssetsFilePath="$(_CrossProjAssetsFile)" TargetFramework="$(_TFM)" RuntimeIdentifier="$(RuntimeIdentifier)" PlatformLibraryName="$(MicrosoftNETPlatformLibrary)" ExcludeFromPublishPackageReferences="@(_ExcludeFromPublishPackageReference)" IsSelfContained="$(SelfContained)" PreserveStoreLayout="false">
<Output TaskParameter="AssembliesToPublish" ItemName="CrossgenResolvedAssembliesToPublish" />
</ResolvePublishAssemblies>
<!-- Copy managed files to a flat temp directory for passing it as ref for crossgen -->
<Copy SourceFiles="@(CrossgenResolvedAssembliesToPublish)" DestinationFolder="$(_NetCoreRefDir)" OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" UseHardlinksIfPossible="$(CreateHardLinksForPublishFilesIfPossible)" UseSymboliclinksIfPossible="$(CreateSymbolicLinksForPublishFilesIfPossible)">
<Output TaskParameter="DestinationFiles" ItemName="FileWrites" />
</Copy>
</Target>
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets
============================================================================================================================================
-->
<!--
============================================================================================================================================
<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.Publish.targets">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Publish.targets
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NET.Publish.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.
***********************************************************************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<DefaultCopyToPublishDirectoryMetadata Condition="'$(DefaultCopyToPublishDirectoryMetadata)' == ''">true</DefaultCopyToPublishDirectoryMetadata>
<_GetChildProjectCopyToPublishDirectoryItems Condition="'$(_GetChildProjectCopyToPublishDirectoryItems)' == ''">true</_GetChildProjectCopyToPublishDirectoryItems>
<!-- publishing self-contained apps should publish the native host as $(AssemblyName).exe -->
<DeployAppHost Condition=" '$(DeployAppHost)' == '' and '$(_IsExecutable)' == 'true' and '$(RuntimeIdentifier)' != '' and '$(SelfContained)' == 'true'">true</DeployAppHost>
<IsPublishable Condition="'$(IsPublishable)'==''">true</IsPublishable>
</PropertyGroup>
<ItemDefinitionGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ResolvedFileToPublish>
<CopyToPublishDirectory>Always</CopyToPublishDirectory>
</ResolvedFileToPublish>
</ItemDefinitionGroup>
<!--
============================================================
Publish
The main publish entry point.
============================================================
-->
<Target Name="Publish" Condition="$(IsPublishable) == 'true'" DependsOnTargets="Build;&#xD;&#xA; PrepareForPublish;&#xD;&#xA; ComputeAndCopyFilesToPublishDirectory;&#xD;&#xA; GeneratePublishDependencyFile;&#xD;&#xA; GeneratePublishRuntimeConfigurationFile" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Ensure there is minimal verbosity output pointing to the publish directory and not just the
build step's minimal output. Otherwise there is no indication at minimal verbosity of where
the published assets were copied. -->
<Message Importance="High" Text="$(MSBuildProjectName) -&gt; $([System.IO.Path]::GetFullPath('$(PublishDir)'))" />
</Target>
<!--
============================================================
PrepareForPublish
Prepare the prerequisites for publishing.
============================================================
-->
<Target Name="PrepareForPublish" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!-- Ensure any PublishDir has a trailing slash, so it can be concatenated -->
<PublishDir Condition="!HasTrailingSlash('$(PublishDir)')">$(PublishDir)\</PublishDir>
</PropertyGroup>
<MakeDir Directories="$(PublishDir)" />
</Target>
<!--
============================================================
ComputeAndCopyFilesToPublishDirectory
Computes the list of all files to copy to the publish directory and then publishes them.
============================================================
-->
<Target Name="ComputeAndCopyFilesToPublishDirectory" DependsOnTargets="ComputeFilesToPublish;&#xD;&#xA; CopyFilesToPublishDirectory" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<!--
============================================================
CopyFilesToPublishDirectory
Copy all build outputs, satellites and other necessary files to the publish directory.
============================================================
-->
<Target Name="CopyFilesToPublishDirectory" DependsOnTargets="_CopyResolvedFilesToPublishPreserveNewest;&#xD;&#xA; _CopyResolvedFilesToPublishAlways" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<!--
============================================================
_CopyResolvedFilesToPublishPreserveNewest
Copy _ResolvedFileToPublishPreserveNewest items to the publish directory.
============================================================
-->
<Target Name="_CopyResolvedFilesToPublishPreserveNewest" DependsOnTargets="_ComputeResolvedFilesToPublishTypes" Inputs="@(_ResolvedFileToPublishPreserveNewest)" Outputs="@(_ResolvedFileToPublishPreserveNewest->'$(PublishDir)%(RelativePath)')" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
Not using SkipUnchangedFiles="true" because the application may want to change
one of these files and not have an incremental build replace it.
-->
<Copy SourceFiles="@(_ResolvedFileToPublishPreserveNewest)" DestinationFiles="@(_ResolvedFileToPublishPreserveNewest->'$(PublishDir)%(RelativePath)')" OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" UseHardlinksIfPossible="$(CreateHardLinksForPublishFilesIfPossible)" UseSymboliclinksIfPossible="$(CreateSymbolicLinksForPublishFilesIfPossible)">
<Output TaskParameter="DestinationFiles" ItemName="FileWrites" />
</Copy>
</Target>
<!--
============================================================
_CopyResolvedFilesToPublishAlways
Copy _ResolvedFileToPublishAlways items to the publish directory.
============================================================
-->
<Target Name="_CopyResolvedFilesToPublishAlways" DependsOnTargets="_ComputeResolvedFilesToPublishTypes" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
Not using SkipUnchangedFiles="true" because the application may want to change
one of these files and not have an incremental build replace it.
-->
<Copy SourceFiles="@(_ResolvedFileToPublishAlways)" DestinationFiles="@(_ResolvedFileToPublishAlways->'$(PublishDir)%(RelativePath)')" OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" UseHardlinksIfPossible="$(CreateHardLinksForPublishFilesIfPossible)" UseSymboliclinksIfPossible="$(CreateSymbolicLinksForPublishFilesIfPossible)">
<Output TaskParameter="DestinationFiles" ItemName="FileWrites" />
</Copy>
</Target>
<!--
============================================================
_ComputeResolvedFilesToPublishTypes
Splits ResolvedFileToPublish items into 'PreserveNewest' and 'Always' buckets.
============================================================
-->
<Target Name="_ComputeResolvedFilesToPublishTypes" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<_ResolvedFileToPublishPreserveNewest Include="@(ResolvedFileToPublish)" Condition="'%(ResolvedFileToPublish.CopyToPublishDirectory)'=='PreserveNewest'" />
<_ResolvedFileToPublishAlways Include="@(ResolvedFileToPublish)" Condition="'%(ResolvedFileToPublish.CopyToPublishDirectory)'=='Always'" />
</ItemGroup>
</Target>
<!--
============================================================
ComputeFilesToPublish
Gathers all the files that need to be copied to the publish directory.
============================================================
-->
<Target Name="ComputeFilesToPublish" DependsOnTargets="_ComputeNetPublishAssets;&#xD;&#xA; _ComputeCopyToPublishDirectoryItems" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<CopyBuildOutputToPublishDirectory Condition="'$(CopyBuildOutputToPublishDirectory)'==''">true</CopyBuildOutputToPublishDirectory>
<CopyOutputSymbolsToPublishDirectory Condition="'$(CopyOutputSymbolsToPublishDirectory)'==''">true</CopyOutputSymbolsToPublishDirectory>
</PropertyGroup>
<ItemGroup>
<!-- Copy the build product (.dll or .exe). -->
<ResolvedFileToPublish Include="@(IntermediateAssembly)" Condition="'$(CopyBuildOutputToPublishDirectory)' == 'true'">
<RelativePath>@(IntermediateAssembly->'%(Filename)%(Extension)')</RelativePath>
</ResolvedFileToPublish>
<!-- Copy the app.config (if any) -->
<ResolvedFileToPublish Include="@(AppConfigWithTargetPath)" Condition="'$(CopyBuildOutputToPublishDirectory)' == 'true'">
<RelativePath>@(AppConfigWithTargetPath->'%(TargetPath)')</RelativePath>
</ResolvedFileToPublish>
<!-- Copy the debug information file (.pdb), if any -->
<ResolvedFileToPublish Include="@(_DebugSymbolsIntermediatePath)" Condition="'$(_DebugSymbolsProduced)'=='true' and '$(CopyOutputSymbolsToPublishDirectory)'=='true'">
<RelativePath>@(_DebugSymbolsIntermediatePath->'%(Filename)%(Extension)')</RelativePath>
</ResolvedFileToPublish>
<!-- Copy satellite assemblies. -->
<ResolvedFileToPublish Include="@(IntermediateSatelliteAssembliesWithTargetPath)">
<RelativePath>%(IntermediateSatelliteAssembliesWithTargetPath.Culture)\%(Filename)%(Extension)</RelativePath>
</ResolvedFileToPublish>
<!-- Copy all the assemblies -->
<ResolvedFileToPublish Include="@(ResolvedAssembliesToPublish)">
<RelativePath>%(ResolvedAssembliesToPublish.DestinationSubPath)</RelativePath>
</ResolvedFileToPublish>
<!-- Copy the xml documentation (if enabled) -->
<ResolvedFileToPublish Include="@(FinalDocFile)" Condition="'$(PublishDocumentationFile)' == 'true'">
<RelativePath>@(FinalDocFile->'%(Filename)%(Extension)')</RelativePath>
</ResolvedFileToPublish>
</ItemGroup>
</Target>
<Target Name="_ComputeNetPublishAssets" DependsOnTargets="RunResolvePublishAssemblies" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- TODO get the content files -->
<!-- TODO perform any preprocess transforms on the files -->
<ItemGroup>
<ResolvedAssembliesToPublish Include="@(ReferenceCopyLocalPaths)" Exclude="@(ResolvedAssembliesToPublish)" Condition="'$(PublishReferencesDocumentationFiles)' == 'true' or '%(Extension)' != '.xml'">
<DestinationSubPath>%(ReferenceCopyLocalPaths.DestinationSubDirectory)%(Filename)%(Extension)</DestinationSubPath>
</ResolvedAssembliesToPublish>
</ItemGroup>
</Target>
<!--
============================================================
RunResolvePublishAssemblies
Gets the assemblies to be copied to the publish directory
============================================================
-->
<UsingTask TaskName="ResolvePublishAssemblies" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<Target Name="RunResolvePublishAssemblies" DependsOnTargets="_ComputeExcludeFromPublishPackageReferences;&#xD;&#xA; _ParseTargetManifestFiles;&#xD;&#xA; _DefaultMicrosoftNETPlatformLibrary" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ResolvePublishAssemblies ProjectPath="$(MSBuildProjectFullPath)" AssetsFilePath="$(ProjectAssetsFile)" TargetFramework="$(TargetFrameworkMoniker)" RuntimeIdentifier="$(RuntimeIdentifier)" PlatformLibraryName="$(MicrosoftNETPlatformLibrary)" ExcludeFromPublishPackageReferences="@(_ExcludeFromPublishPackageReference)" RuntimeStorePackages="@(RuntimeStorePackages)" PreserveStoreLayout="$(PreserveStoreLayout)" IsSelfContained="$(SelfContained)">
<Output TaskParameter="AssembliesToPublish" ItemName="ResolvedAssembliesToPublish" />
</ResolvePublishAssemblies>
</Target>
<!--
============================================================
_ComputeCopyToPublishDirectoryItems
============================================================
-->
<Target Name="_ComputeCopyToPublishDirectoryItems" DependsOnTargets="GetCopyToPublishDirectoryItems" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ResolvedFileToPublish Include="@(_SourceItemsToCopyToPublishDirectoryAlways)">
<RelativePath>%(_SourceItemsToCopyToPublishDirectoryAlways.TargetPath)</RelativePath>
<CopyToPublishDirectory>Always</CopyToPublishDirectory>
</ResolvedFileToPublish>
<ResolvedFileToPublish Include="@(_SourceItemsToCopyToPublishDirectory)">
<RelativePath>%(_SourceItemsToCopyToPublishDirectory.TargetPath)</RelativePath>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</ResolvedFileToPublish>
</ItemGroup>
</Target>
<!--
============================================================
GetCopyToPublishDirectoryItems
Get all project items that may need to be transferred to the publish directory.
This includes baggage items from transitively referenced projects. It would appear
that this target computes full transitive closure of content items for all referenced
projects; however that is not the case. It only collects the content items from its
immediate children and not children of children.
See comment on GetCopyToOutputDirectoryItems, from which this logic was taken.
============================================================
-->
<Target Name="GetCopyToPublishDirectoryItems" Returns="@(AllPublishItemsFullPathWithTargetPath)" KeepDuplicateOutputs=" '$(MSBuildDisableGetCopyToPublishDirectoryItemsOptimization)' == '' " DependsOnTargets="AssignTargetPaths;&#xD;&#xA; DefaultCopyToPublishDirectoryMetadata;&#xD;&#xA; _SplitProjectReferencesByFileExistence;&#xD;&#xA; _GetProjectReferenceTargetFrameworkProperties" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- In the general case, clients need very little of the metadata which is generated by invoking this target on this project and its children. For those
cases, we can immediately discard the unwanted metadata, reducing memory usage, particularly in very large and interconnected systems of projects.
However, if some client does require the original functionality, it is sufficient to set MSBuildDisableGetCopyToPublishDirectoryItemsOptimization to
a non-empty value and the original behavior will be restored. -->
<PropertyGroup Condition=" '$(MSBuildDisableGetCopyToPublishDirectoryItemsOptimization)' == '' ">
<_GCTPDIKeepDuplicates>false</_GCTPDIKeepDuplicates>
<_GCTPDIKeepMetadata>CopyToPublishDirectory;TargetPath</_GCTPDIKeepMetadata>
</PropertyGroup>
<!-- Get items from child projects first. -->
<MSBuild Projects="@(_MSBuildProjectReferenceExistent)" Targets="GetCopyToPublishDirectoryItems" BuildInParallel="$(BuildInParallel)" Properties="%(_MSBuildProjectReferenceExistent.SetConfiguration); %(_MSBuildProjectReferenceExistent.SetPlatform); %(_MSBuildProjectReferenceExistent.SetTargetFramework)" Condition="'@(_MSBuildProjectReferenceExistent)' != '' and '$(_GetChildProjectCopyToPublishDirectoryItems)' == 'true' and '%(_MSBuildProjectReferenceExistent.Private)' != 'false'" ContinueOnError="$(ContinueOnError)" RemoveProperties="%(_MSBuildProjectReferenceExistent.GlobalPropertiesToRemove)">
<Output TaskParameter="TargetOutputs" ItemName="_AllChildProjectPublishItemsWithTargetPath" />
</MSBuild>
<!-- Target outputs must be full paths because they will be consumed by a different project. -->
<ItemGroup>
<_SourceItemsToCopyToPublishDirectoryAlways KeepDuplicates=" '$(_GCTPDIKeepDuplicates)' != 'false' " KeepMetadata="$(_GCTPDIKeepMetadata)" Include="@(_AllChildProjectPublishItemsWithTargetPath->'%(FullPath)')" Condition="'%(_AllChildProjectPublishItemsWithTargetPath.CopyToPublishDirectory)'=='Always'" />
<_SourceItemsToCopyToPublishDirectory KeepDuplicates=" '$(_GCTPDIKeepDuplicates)' != 'false' " KeepMetadata="$(_GCTPDIKeepMetadata)" Include="@(_AllChildProjectPublishItemsWithTargetPath->'%(FullPath)')" Condition="'%(_AllChildProjectPublishItemsWithTargetPath.CopyToPublishDirectory)'=='PreserveNewest'" />
</ItemGroup>
<!-- Remove items which we will never again use - they just sit around taking up memory otherwise -->
<ItemGroup>
<_AllChildProjectPublishItemsWithTargetPath Remove="@(_AllChildProjectPublishItemsWithTargetPath)" />
</ItemGroup>
<!-- Get items from this project last so that they will be copied last. -->
<ItemGroup>
<_SourceItemsToCopyToPublishDirectoryAlways KeepMetadata="$(_GCTPDIKeepMetadata)" Include="@(ContentWithTargetPath->'%(FullPath)')" Condition="'%(ContentWithTargetPath.CopyToPublishDirectory)'=='Always'" />
<_SourceItemsToCopyToPublishDirectory KeepMetadata="$(_GCTPDIKeepMetadata)" Include="@(ContentWithTargetPath->'%(FullPath)')" Condition="'%(ContentWithTargetPath.CopyToPublishDirectory)'=='PreserveNewest'" />
</ItemGroup>
<ItemGroup>
<_SourceItemsToCopyToPublishDirectoryAlways KeepMetadata="$(_GCTPDIKeepMetadata)" Include="@(EmbeddedResource->'%(FullPath)')" Condition="'%(EmbeddedResource.CopyToPublishDirectory)'=='Always'" />
<_SourceItemsToCopyToPublishDirectory KeepMetadata="$(_GCTPDIKeepMetadata)" Include="@(EmbeddedResource->'%(FullPath)')" Condition="'%(EmbeddedResource.CopyToPublishDirectory)'=='PreserveNewest'" />
</ItemGroup>
<ItemGroup>
<_CompileItemsToPublish Include="@(Compile->'%(FullPath)')" Condition="'%(Compile.CopyToPublishDirectory)'=='Always' or '%(Compile.CopyToPublishDirectory)'=='PreserveNewest'" />
</ItemGroup>
<AssignTargetPath Files="@(_CompileItemsToPublish)" RootFolder="$(MSBuildProjectDirectory)">
<Output TaskParameter="AssignedFiles" ItemName="_CompileItemsToPublishWithTargetPath" />
</AssignTargetPath>
<ItemGroup>
<_SourceItemsToCopyToPublishDirectoryAlways KeepMetadata="$(_GCTPDIKeepMetadata)" Include="@(_CompileItemsToPublishWithTargetPath)" Condition="'%(_CompileItemsToPublishWithTargetPath.CopyToPublishDirectory)'=='Always'" />
<_SourceItemsToCopyToPublishDirectory KeepMetadata="$(_GCTPDIKeepMetadata)" Include="@(_CompileItemsToPublishWithTargetPath)" Condition="'%(_CompileItemsToPublishWithTargetPath.CopyToPublishDirectory)'=='PreserveNewest'" />
</ItemGroup>
<ItemGroup>
<_SourceItemsToCopyToPublishDirectoryAlways KeepMetadata="$(_GCTPDIKeepMetadata)" Include="@(_NoneWithTargetPath->'%(FullPath)')" Condition="'%(_NoneWithTargetPath.CopyToPublishDirectory)'=='Always'" />
<_SourceItemsToCopyToPublishDirectory KeepMetadata="$(_GCTPDIKeepMetadata)" Include="@(_NoneWithTargetPath->'%(FullPath)')" Condition="'%(_NoneWithTargetPath.CopyToPublishDirectory)'=='PreserveNewest'" />
</ItemGroup>
<ItemGroup>
<AllPublishItemsFullPathWithTargetPath Include="@(_SourceItemsToCopyToPublishDirectoryAlways->'%(FullPath)');@(_SourceItemsToCopyToPublishDirectory->'%(FullPath)')" />
</ItemGroup>
</Target>
<!--
============================================================
DefaultCopyToPublishDirectoryMetadata
If CopyToPublishDirectory isn't set on these items, the value should be taken from CopyToOutputDirectory.
This way, projects can just set "CopyToOutputDirectory = Always/PreserveNewest" and by default the item will be copied
to both the build output and publish directories.
============================================================
-->
<Target Name="DefaultCopyToPublishDirectoryMetadata" DependsOnTargets="AssignTargetPaths" Condition=" '$(DefaultCopyToPublishDirectoryMetadata)' == 'true' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ContentWithTargetPath Condition="'%(ContentWithTargetPath.CopyToOutputDirectory)'=='Always' and '%(ContentWithTargetPath.CopyToPublishDirectory)' == ''">
<CopyToPublishDirectory>Always</CopyToPublishDirectory>
</ContentWithTargetPath>
<ContentWithTargetPath Condition="'%(ContentWithTargetPath.CopyToOutputDirectory)'=='PreserveNewest' and '%(ContentWithTargetPath.CopyToPublishDirectory)' == ''">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</ContentWithTargetPath>
<EmbeddedResource Condition="'%(EmbeddedResource.CopyToOutputDirectory)'=='Always' and '%(EmbeddedResource.CopyToPublishDirectory)' == ''">
<CopyToPublishDirectory>Always</CopyToPublishDirectory>
</EmbeddedResource>
<EmbeddedResource Condition="'%(EmbeddedResource.CopyToOutputDirectory)'=='PreserveNewest' and '%(EmbeddedResource.CopyToPublishDirectory)' == ''">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</EmbeddedResource>
<Compile Condition="'%(Compile.CopyToOutputDirectory)'=='Always' and '%(Compile.CopyToPublishDirectory)' == ''">
<CopyToPublishDirectory>Always</CopyToPublishDirectory>
</Compile>
<Compile Condition="'%(Compile.CopyToOutputDirectory)'=='PreserveNewest' and '%(Compile.CopyToPublishDirectory)' == ''">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Compile>
<_NoneWithTargetPath Condition="'%(_NoneWithTargetPath.CopyToOutputDirectory)'=='Always' and '%(_NoneWithTargetPath.CopyToPublishDirectory)' == ''">
<CopyToPublishDirectory>Always</CopyToPublishDirectory>
</_NoneWithTargetPath>
<_NoneWithTargetPath Condition="'%(_NoneWithTargetPath.CopyToOutputDirectory)'=='PreserveNewest' and '%(_NoneWithTargetPath.CopyToPublishDirectory)' == ''">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</_NoneWithTargetPath>
</ItemGroup>
</Target>
<!--
============================================================
GeneratePublishDependencyFile
Generates the $(project).deps.json file for a published app
============================================================
-->
<Target Name="GeneratePublishDependencyFile" DependsOnTargets="_ComputeExcludeFromPublishPackageReferences;&#xD;&#xA; _ParseTargetManifestFiles;&#xD;&#xA; _DefaultMicrosoftNETPlatformLibrary;&#xD;&#xA; _HandlePackageFileConflicts;&#xD;&#xA; _HandlePublishFileConflicts;&#xD;&#xA; _ComputeReferenceAssemblies" Condition="'$(GenerateDependencyFile)' == 'true'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishDepsFilePath Condition=" '$(PublishDepsFilePath)' == '' ">$(PublishDir)$(ProjectDepsFileName)</PublishDepsFilePath>
</PropertyGroup>
<GenerateDepsFile ProjectPath="$(MSBuildProjectFullPath)" AssetsFilePath="$(ProjectAssetsFile)" DepsFilePath="$(PublishDepsFilePath)" TargetFramework="$(TargetFrameworkMoniker)" AssemblyName="$(AssemblyName)" AssemblyExtension="$(TargetExt)" AssemblyVersion="$(Version)" AssemblySatelliteAssemblies="@(IntermediateSatelliteAssembliesWithTargetPath)" ReferencePaths="@(ReferencePath)" ReferenceSatellitePaths="@(ReferenceSatellitePaths)" ReferenceAssemblies="@(_ReferenceAssemblies)" IncludeMainProject="$(IncludeMainProjectInDepsFile)" RuntimeIdentifier="$(RuntimeIdentifier)" PlatformLibraryName="$(MicrosoftNETPlatformLibrary)" FilesToSkip="@(_ConflictPackageFiles);@(_PublishConflictPackageFiles)" CompilerOptions="@(DependencyFileCompilerOptions)" ExcludeFromPublishPackageReferences="@(_ExcludeFromPublishPackageReference)" RuntimeStorePackages="@(RuntimeStorePackages)" IsSelfContained="$(SelfContained)" />
</Target>
<!--
============================================================
_ComputeExcludeFromPublishPackageReferences
Builds up the @(_ExcludeFromPublishPackageReference) item by looking for @(PackageReference) items where
that have Publish=false metadata, or that have PrivateAssets=All and don't specify Publish
============================================================
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<_ComputeExcludeFromPublishPackageReferences Condition="'$(_ComputeExcludeFromPublishPackageReferences)' == ''">true</_ComputeExcludeFromPublishPackageReferences>
</PropertyGroup>
<Target Name="_ComputeExcludeFromPublishPackageReferences" Condition="'$(_ComputeExcludeFromPublishPackageReferences)' == 'true'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<!-- PrivateAssets="All" means exclude from publish, unless Publish metadata is specified separately -->
<PackageReference Publish="false" Condition="('%(PackageReference.PrivateAssets)' == 'All') And ('%(PackageReference.Publish)' == '')" />
<_ExcludeFromPublishPackageReference Include="@(PackageReference)" Condition="('%(PackageReference.Publish)' == 'false')" />
</ItemGroup>
</Target>
<!--
============================================================
_ParseTargetManifestFiles
Parses the $(TargetManifestFiles) which contains a list of files into @(RuntimeStorePackages) items
which describes which packages should be excluded from publish since they are contained in the runtime store.
============================================================
-->
<UsingTask TaskName="ParseTargetManifests" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<Target Name="_ParseTargetManifestFiles" Condition="'$(TargetManifestFiles)' != ''" Returns="@(RuntimeStorePackages)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ParseTargetManifests TargetManifestFiles="$(TargetManifestFiles)">
<Output TaskParameter="RuntimeStorePackages" ItemName="RuntimeStorePackages" />
</ParseTargetManifests>
</Target>
<!--
============================================================
GeneratePublishRuntimeConfigurationFile
Generates the $(project).runtimeconfig.json file for a published app
============================================================
-->
<Target Name="GeneratePublishRuntimeConfigurationFile" DependsOnTargets="_DefaultMicrosoftNETPlatformLibrary" Condition="'$(GenerateRuntimeConfigurationFiles)' == 'true'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishRuntimeConfigFilePath Condition=" '$(PublishRuntimeConfigFilePath)' == '' ">$(PublishDir)$(ProjectRuntimeConfigFileName)</PublishRuntimeConfigFilePath>
</PropertyGroup>
<GenerateRuntimeConfigurationFiles AssetsFilePath="$(ProjectAssetsFile)" TargetFrameworkMoniker="$(TargetFrameworkMoniker)" TargetFramework="$(TargetFramework)" RuntimeConfigPath="$(PublishRuntimeConfigFilePath)" RuntimeIdentifier="$(RuntimeIdentifier)" PlatformLibraryName="$(MicrosoftNETPlatformLibrary)" UserRuntimeConfig="$(UserRuntimeConfig)" HostConfigurationOptions="@(RuntimeHostConfigurationOption)" IsSelfContained="$(SelfContained)" />
</Target>
<!--
============================================================
DeployAppHost
Deploys the host to run the stand alone app and ensures it matches the app name
============================================================
-->
<Target Name="DeployAppHost" DependsOnTargets="_ComputeNETCoreBuildOutputFiles" AfterTargets="ComputeFilesToPublish" BeforeTargets="CopyFilesToPublishDirectory" Condition="'$(DeployAppHost)' == 'true'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ResolvedFileToRemove Include="%(ResolvedFileToPublish.Identity)" Condition="'%(ResolvedFileToPublish.RelativePath)' == '$(_DotNetHostExecutableName)' Or '%(ResolvedFileToPublish.RelativePath)' == '$(_DotNetAppHostExecutableName)'" />
<ResolvedFileToPublish Remove="%(ResolvedFileToRemove.Identity)" />
<ResolvedFileToPublish Include="%(NativeAppHostNETCore.Identity)">
<RelativePath>$(AssemblyName)$(_NativeExecutableExtension)</RelativePath>
</ResolvedFileToPublish>
</ItemGroup>
</Target>
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets
============================================================================================================================================
-->
<!--
============================================================================================================================================
<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.PreserveCompilationContext.targets">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.PreserveCompilationContext.targets
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NET.PreserveCompilationContext.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.
***********************************************************************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<RefAssembliesFolderName Condition="'$(RefAssembliesFolderName)' == ''">refs</RefAssembliesFolderName>
</PropertyGroup>
<Target Name="ComputeDependencyFileCompilerOptions" Condition="'$(PreserveCompilationContext)' == 'true'" BeforeTargets="GenerateBuildDependencyFile;&#xD;&#xA; GeneratePublishDependencyFile" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<DependencyFileCompilerOptions Include="CompilerOptions">
<DefineConstants>$(DefineConstants)</DefineConstants>
<LangVersion>$(LangVersion)</LangVersion>
<PlatformTarget>$(PlatformTarget)</PlatformTarget>
<AllowUnsafeBlocks>$(AllowUnsafeBlocks)</AllowUnsafeBlocks>
<TreatWarningsAsErrors>$(TreatWarningsAsErrors)</TreatWarningsAsErrors>
<Optimize>$(Optimize)</Optimize>
<AssemblyOriginatorKeyFile>$(AssemblyOriginatorKeyFile)</AssemblyOriginatorKeyFile>
<DelaySign>$(DelaySign)</DelaySign>
<PublicSign>$(DelaySign)</PublicSign>
<DebugType>$(DebugType)</DebugType>
<OutputType>$(OutputType)</OutputType>
<GenerateDocumentationFile>$(GenerateDocumentationFile)</GenerateDocumentationFile>
</DependencyFileCompilerOptions>
</ItemGroup>
</Target>
<UsingTask TaskName="FindItemsFromPackages" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<Target Name="ComputeRefAssembliesToPublish" Condition="'$(PreserveCompilationContext)' == 'true'" DependsOnTargets="_ComputeLockFileCopyLocal;&#xD;&#xA; _ParseTargetManifestFiles" AfterTargets="ComputeFilesToPublish" BeforeTargets="CopyFilesToPublishDirectory" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<FindItemsFromPackages Items="@(_RuntimeCopyLocalItems)" Packages="@(RuntimeStorePackages)">
<Output TaskParameter="ItemsFromPackages" ItemName="_RuntimeItemsInRuntimeStore" />
</FindItemsFromPackages>
<ItemGroup>
<!--
Don't copy a compilation assembly if it's also a runtime assembly. There is no need to copy the same
assembly to the 'refs' folder, if it is already in the publish directory.
-->
<_RefAssembliesToExclude Include="@(ResolvedAssembliesToPublish->'%(FullPath)')" />
<!--
Similarly, don't copy a compilation assembly if it's also a runtime assembly that is in a runtime store.
It will be resolved from the runtime store directory at runtime.
-->
<_RefAssembliesToExclude Include="@(_RuntimeItemsInRuntimeStore->'%(ResolvedPath)')" />
<ResolvedFileToPublish Include="@(ReferencePath)" Exclude="@(_RefAssembliesToExclude)">
<RelativePath>$(RefAssembliesFolderName)\%(Filename)%(Extension)</RelativePath>
</ResolvedFileToPublish>
</ItemGroup>
</Target>
<!--
============================================================
_CopyReferenceOnlyAssembliesForBuild
Copies reference assemblies that normally can't be resolved at runtime to the 'refs' folder in the build output.
This is necessary in order for the running app to resolve these reference assemblies.
============================================================
-->
<Target Name="_CopyReferenceOnlyAssembliesForBuild" Condition="'$(PreserveCompilationContext)' == 'true'" DependsOnTargets="_ComputeReferenceAssemblies" AfterTargets="CopyFilesToOutputDirectory" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Copy SourceFiles="@(_ReferenceOnlyAssemblies)" DestinationFolder="$(OutDir)$(RefAssembliesFolderName)" SkipUnchangedFiles="$(SkipCopyUnchangedFiles)" OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)" Retries="$(CopyRetryCount)" RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" UseHardlinksIfPossible="$(CreateHardLinksForCopyFilesToOutputDirectoryIfPossible)" UseSymboliclinksIfPossible="$(CreateSymbolicLinksForCopyFilesToOutputDirectoryIfPossible)">
<Output TaskParameter="DestinationFiles" ItemName="FileWrites" />
</Copy>
</Target>
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets
============================================================================================================================================
-->
<!--
============================================================================================================================================
<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.ConflictResolution.targets">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.ConflictResolution.targets
============================================================================================================================================
-->
<!--
***********************************************************************************************
Microsoft.NET.ConflictResolution.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.
***********************************************************************************************
-->
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<UsingTask TaskName="ResolvePackageFileConflicts" AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<Target Name="_HandlePackageFileConflicts" DependsOnTargets="_ComputeLockFileCopyLocal;GetReferenceAssemblyPaths" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<!-- We need to find all the files that will be loaded from deps for conflict resolution.
To do this, we look at the files that would be copied local when CopyLocalLockFileAssemblies is true.
However, if CopyLocalLockFileAssemblies is true, then we don't add these items, as they
will always be included in ReferenceCopyLocalPaths.
-->
<_LockFileAssemblies Include="@(AllCopyLocalItems-&gt;WithMetadataValue('Type', 'assembly'))" Condition="'$(CopyLocalLockFileAssemblies)' != 'true'" />
<!-- Also include RuntimeTarget items, which aren't included in AllCopyLocalItems, but need to be considered
for conflict resolution. Set DestinationSubPath for these items so that conflict resolution will consider
that path (for example "runtimes/win/lib/netstandard1.3/System.Diagnostics.TraceSource.dll" when looking
for conflicts). -->
<_RuntimeTargetItems Include="@(_ActiveTFMFileDependencies-&gt;WithMetadataValue('FileGroup', 'RuntimeTarget'))" />
</ItemGroup>
<JoinItems Left="@(_RuntimeTargetItems)" Right="@(FileDefinitions)" RightMetadata="*">
<Output TaskParameter="JoinResult" ItemName="_RuntimeTargetPublishItems" />
</JoinItems>
<ItemGroup>
<_RuntimeTargetPublishItems Update="@(_RuntimeTargetPublishItems)" DestinationSubPath="%(Path)" />
<_LockFileAssemblies Include="@(_RuntimeTargetPublishItems-&gt;WithMetadataValue('Type', 'assembly')-&gt;'%(ResolvedPath)')">
<Private>false</Private>
<NuGetIsFrameworkReference>false</NuGetIsFrameworkReference>
<NuGetSourceType>Package</NuGetSourceType>
<NuGetPackageId>%(PackageName)</NuGetPackageId>
<NuGetPackageVersion>%(PackageVersion)</NuGetPackageVersion>
</_LockFileAssemblies>
</ItemGroup>
<ResolvePackageFileConflicts References="@(Reference)" ReferenceCopyLocalPaths="@(ReferenceCopyLocalPaths)" OtherRuntimeItems="@(_LockFileAssemblies)" PlatformManifests="@(PackageConflictPlatformManifests)" TargetFrameworkDirectories="$(TargetFrameworkDirectory)" PreferredPackages="$(PackageConflictPreferredPackages)">
<Output TaskParameter="ReferencesWithoutConflicts" ItemName="_ReferencesWithoutConflicts" />
<Output TaskParameter="ReferenceCopyLocalPathsWithoutConflicts" ItemName="_ReferenceCopyLocalPathsWithoutConflicts" />
<Output TaskParameter="Conflicts" ItemName="_ConflictPackageFiles" />
</ResolvePackageFileConflicts>
<!-- Replace Reference / ReferenceCopyLocalPaths with the filtered lists.
We must remove all and include rather than just remove since removal is based
only on ItemSpec and duplicate ItemSpecs may exist with different metadata
(eg: HintPath) -->
<ItemGroup>
<Reference Remove="@(Reference)" />
<Reference Include="@(_ReferencesWithoutConflicts)" />
<ReferenceCopyLocalPaths Remove="@(ReferenceCopyLocalPaths)" />
<ReferenceCopyLocalPaths Include="@(_ReferenceCopyLocalPathsWithoutConflicts)" />
</ItemGroup>
</Target>
<Target Name="_HandlePublishFileConflicts" AfterTargets="RunResolvePublishAssemblies" DependsOnTargets="GetReferenceAssemblyPaths" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ResolvePackageFileConflicts ReferenceCopyLocalPaths="@(ResolvedAssembliesToPublish)" PlatformManifests="@(PackageConflictPlatformManifests)" TargetFrameworkDirectories="$(TargetFrameworkDirectory)" PreferredPackages="$(PackageConflictPreferredPackages)">
<Output TaskParameter="ReferenceCopyLocalPathsWithoutConflicts" ItemName="_ResolvedAssembliesToPublishWithoutConflicts" />
<Output TaskParameter="Conflicts" ItemName="_PublishConflictPackageFiles" />
</ResolvePackageFileConflicts>
<ItemGroup>
<ResolvedAssembliesToPublish Remove="@(ResolvedAssembliesToPublish)" />
<ResolvedAssembliesToPublish Include="@(_ResolvedAssembliesToPublishWithoutConflicts)" />
</ItemGroup>
</Target>
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets
============================================================================================================================================
-->
<!--<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.Sdk.CSharp.targets" Condition="'$(Language)' == 'C#'" />-->
<!--<Import Project="$(MSBuildThisFileDirectory)Microsoft.NET.Sdk.VisualBasic.targets" Condition="'$(Language)' == 'VB'" />-->
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\Sdk\Sdk.targets
============================================================================================================================================
-->
<!-- Import targets from NuGet.Build.Tasks.Pack package/Sdk -->
<PropertyGroup Condition="'$(NuGetBuildTasksPackTargets)' == '' AND '$(ImportNuGetBuildTasksPackTargetsFromSdk' != 'false'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<NuGetBuildTasksPackTargets Condition="'$(IsCrossTargetingBuild)' == 'true'">$(MSBuildThisFileDirectory)..\..\NuGet.Build.Tasks.Pack\buildCrossTargeting\NuGet.Build.Tasks.Pack.targets</NuGetBuildTasksPackTargets>
<NuGetBuildTasksPackTargets Condition="'$(IsCrossTargetingBuild)' != 'true'">$(MSBuildThisFileDirectory)..\..\NuGet.Build.Tasks.Pack\build\NuGet.Build.Tasks.Pack.targets</NuGetBuildTasksPackTargets>
<ImportNuGetBuildTasksPackTargetsFromSdk>true</ImportNuGetBuildTasksPackTargetsFromSdk>
</PropertyGroup>
<!--
============================================================================================================================================
<Import Project="$(NuGetBuildTasksPackTargets)" Condition="Exists('$(NuGetBuildTasksPackTargets)') AND '$(ImportNuGetBuildTasksPackTargetsFromSdk)' == 'true'">
C:\Program Files\dotnet\sdk\2.1.100\Sdks\NuGet.Build.Tasks.Pack\build\NuGet.Build.Tasks.Pack.targets
============================================================================================================================================
-->
<!--
***********************************************************************************************
NuGet.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.
***********************************************************************************************
-->
<!-- Load NuGet.Build.Tasks.Pack.dll, this can be overridden to use a different version with $(NuGetPackTaskAssemblyFile) -->
<PropertyGroup Condition="$(NuGetPackTaskAssemblyFile) == ''" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<NuGetPackTaskAssemblyFile Condition="'$(MSBuildRuntimeType)' == 'Core'">..\CoreCLR\NuGet.Build.Tasks.Pack.dll</NuGetPackTaskAssemblyFile>
<NuGetPackTaskAssemblyFile Condition="'$(MSBuildRuntimeType)' != 'Core'">..\Desktop\NuGet.Build.Tasks.Pack.dll</NuGetPackTaskAssemblyFile>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
<UsingTask TaskName="NuGet.Build.Tasks.Pack.PackTask" AssemblyFile="$(NuGetPackTaskAssemblyFile)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<UsingTask TaskName="NuGet.Build.Tasks.Pack.GetPackOutputItemsTask" AssemblyFile="$(NuGetPackTaskAssemblyFile)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<UsingTask TaskName="NuGet.Build.Tasks.GetProjectTargetFrameworksTask" AssemblyFile="$(NuGetPackTaskAssemblyFile)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<UsingTask TaskName="NuGet.Build.Tasks.Pack.GetProjectReferencesFromAssetsFileTask" AssemblyFile="$(NuGetPackTaskAssemblyFile)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<PropertyGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PackageId Condition=" '$(PackageId)' == '' ">$(AssemblyName)</PackageId>
<PackageVersion Condition=" '$(PackageVersion)' == '' ">$(Version)</PackageVersion>
<IncludeContentInPack Condition="'$(IncludeContentInPack)'==''">true</IncludeContentInPack>
<GenerateNuspecDependsOn>_LoadPackInputItems; _GetTargetFrameworksOutput; _WalkEachTargetPerFramework; _GetPackageFiles; $(GenerateNuspecDependsOn)</GenerateNuspecDependsOn>
<PackageDescription Condition="'$(PackageDescription)'==''">$(Description)</PackageDescription>
<PackageDescription Condition="'$(PackageDescription)'==''">Package Description</PackageDescription>
<IsPackable Condition="'$(IsPackable)'=='' AND '$(IsTestProject)'=='true'">false</IsPackable>
<IsPackable Condition="'$(IsPackable)'==''">true</IsPackable>
<IncludeBuildOutput Condition="'$(IncludeBuildOutput)'==''">true</IncludeBuildOutput>
<BuildOutputTargetFolder Condition="'$(BuildOutputTargetFolder)' == '' AND '$(IsTool)' == 'true'">tools</BuildOutputTargetFolder>
<BuildOutputTargetFolder Condition="'$(BuildOutputTargetFolder)' == ''">lib</BuildOutputTargetFolder>
<ContentTargetFolders Condition="'$(ContentTargetFolders)' == ''">content;contentFiles</ContentTargetFolders>
<PackDependsOn>$(BeforePack); _IntermediatePack; GenerateNuspec; $(PackDependsOn)</PackDependsOn>
<IsInnerBuild Condition="'$(TargetFramework)' != '' AND '$(TargetFrameworks)' != ''">true</IsInnerBuild>
<NoBuild Condition="'$(GeneratePackageOnBuild)' == 'true'">true</NoBuild>
<AddPriFileDependsOn Condition="'$(MicrosoftPortableCurrentVersionPropsHasBeenImported)' == 'true'">DeterminePortableBuildCapabilities</AddPriFileDependsOn>
<NuspecOutputPath Condition="'$(NuspecOutputPath)' == ''">$(BaseIntermediateOutputPath)$(Configuration)\</NuspecOutputPath>
<ImportNuGetBuildTasksPackTargetsFromSdk Condition="'$(ImportNuGetBuildTasksPackTargetsFromSdk)' == ''">false</ImportNuGetBuildTasksPackTargetsFromSdk>
<AllowedOutputExtensionsInPackageBuildOutputFolder>.dll; .exe; .winmd; .json; .pri; .xml; $(AllowedOutputExtensionsInPackageBuildOutputFolder)</AllowedOutputExtensionsInPackageBuildOutputFolder>
<AllowedOutputExtensionsInSymbolsPackageBuildOutputFolder>.pdb; .mdb; $(AllowedOutputExtensionsInPackageBuildOutputFolder); $(AllowedOutputExtensionsInSymbolsPackageBuildOutputFolder)</AllowedOutputExtensionsInSymbolsPackageBuildOutputFolder>
</PropertyGroup>
<PropertyGroup Condition="'$(NoBuild)' == 'true' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<GenerateNuspecDependsOn>$(GenerateNuspecDependsOn)</GenerateNuspecDependsOn>
</PropertyGroup>
<PropertyGroup Condition="'$(NoBuild)' != 'true' " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<GenerateNuspecDependsOn>Build;$(GenerateNuspecDependsOn)</GenerateNuspecDependsOn>
</PropertyGroup>
<ItemGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ProjectCapability Include="Pack" />
</ItemGroup>
<ItemDefinitionGroup xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<BuildOutputInPackage>
<TargetFramework>$(TargetFramework)</TargetFramework>
</BuildOutputInPackage>
<TfmSpecificPackageFile>
<BuildAction>None</BuildAction>
</TfmSpecificPackageFile>
</ItemDefinitionGroup>
<Target Name="_GetOutputItemsFromPack" Returns="@(_OutputPackItems)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ConvertToAbsolutePath Paths="$(PackageOutputPath)">
<Output TaskParameter="AbsolutePaths" PropertyName="PackageOutputAbsolutePath" />
</ConvertToAbsolutePath>
<ConvertToAbsolutePath Paths="$(NuspecOutputPath)">
<Output TaskParameter="AbsolutePaths" PropertyName="NuspecOutputAbsolutePath" />
</ConvertToAbsolutePath>
<GetPackOutputItemsTask PackageOutputPath="$(PackageOutputAbsolutePath)" NuspecOutputPath="$(NuspecOutputAbsolutePath)" PackageId="$(PackageId)" PackageVersion="$(PackageVersion)" IncludeSymbols="$(IncludeSymbols)" IncludeSource="$(IncludeSource)">
<Output TaskParameter="OutputPackItems" ItemName="_OutputPackItems" />
</GetPackOutputItemsTask>
</Target>
<!--
============================================================
_GetTargetFrameworksOutput
Read target frameworks from the project.
============================================================
-->
<Target Name="_GetTargetFrameworksOutput" Returns="@(_TargetFrameworks)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_ProjectFrameworks />
</PropertyGroup>
<GetProjectTargetFrameworksTask ProjectPath="$(MSBuildProjectFullPath)" TargetFrameworks="$(TargetFrameworks)" TargetFramework="$(TargetFramework)" TargetFrameworkMoniker="$(TargetFrameworkMoniker)" TargetPlatformIdentifier="$(TargetPlatformIdentifier)" TargetPlatformVersion="$(TargetPlatformVersion)" TargetPlatformMinVersion="$(TargetPlatformMinVersion)">
<Output TaskParameter="ProjectTargetFrameworks" PropertyName="_ProjectFrameworks" />
</GetProjectTargetFrameworksTask>
<ItemGroup Condition=" '$(_ProjectFrameworks)' != '' ">
<_TargetFrameworks Include="$(_ProjectFrameworks.Split(';'))" />
</ItemGroup>
</Target>
<!--
============================================================
Pack
Post Build Target
============================================================
-->
<Target Name="_PackAsBuildAfterTarget" AfterTargets="Build" Condition="'$(GeneratePackageOnBuild)' == 'true' AND '$(IsInnerBuild)' != 'true'" DependsOnTargets="Pack" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<Target Name="_CleanPackageFiles" DependsOnTargets="_GetOutputItemsFromPack" AfterTargets="Clean" Condition="'$(GeneratePackageOnBuild)' == 'true'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<_PackageFilesToDelete Include="@(_OutputPackItems)" />
</ItemGroup>
<Delete Files="@(_PackageFilesToDelete)" />
</Target>
<Target Name="_CalculateInputsOutputsForPack" DependsOnTargets="_GetOutputItemsFromPack" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="$(ContinuePackingAfterGeneratingNuspec) == '' ">
<ContinuePackingAfterGeneratingNuspec>false</ContinuePackingAfterGeneratingNuspec>
</PropertyGroup>
<PropertyGroup>
<PackageOutputPath Condition=" '$(PackageOutputPath)' == '' ">$(OutputPath)</PackageOutputPath>
<RestoreOutputPath Condition=" '$(RestoreOutputPath)' == '' ">$(BaseIntermediateOutputPath)</RestoreOutputPath>
</PropertyGroup>
<ConvertToAbsolutePath Paths="$(NuspecOutputPath)">
<Output TaskParameter="AbsolutePaths" PropertyName="NuspecOutputAbsolutePath" />
</ConvertToAbsolutePath>
<ConvertToAbsolutePath Paths="$(RestoreOutputPath)">
<Output TaskParameter="AbsolutePaths" PropertyName="RestoreOutputAbsolutePath" />
</ConvertToAbsolutePath>
<ConvertToAbsolutePath Paths="$(PackageOutputPath)">
<Output TaskParameter="AbsolutePaths" PropertyName="PackageOutputAbsolutePath" />
</ConvertToAbsolutePath>
<ConvertToAbsolutePath Condition="$(NuspecFile) != ''" Paths="$(NuspecFile)">
<Output TaskParameter="AbsolutePaths" PropertyName="NuspecFileAbsolutePath" />
</ConvertToAbsolutePath>
<ItemGroup>
<!--This catches changes to properties-->
<NuGetPackInput Include="$(MSBuildAllProjects)" />
<NuGetPackInput Include="@(_PackageFiles)" />
<NuGetPackInput Include="@(_PackageFilesToExclude)" />
<NuGetPackInput Include="@(_BuildOutputInPackage->'%(FinalOutputPath)')" />
<NuGetPackInput Include="@(_TargetPathsToSymbols->'%(FinalOutputPath)')" />
<NuGetPackInput Include="@(_SourceFiles)" />
<NuGetPackInput Include="@(_References)" />
<NuGetPackOutput Include="@(_OutputPackItems)" />
</ItemGroup>
</Target>
<!--
============================================================
Pack
Main entry point for packing packages
============================================================
-->
<Target Name="Pack" DependsOnTargets="$(PackDependsOn)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<Target Name="_IntermediatePack" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ContinuePackingAfterGeneratingNuspec>true</ContinuePackingAfterGeneratingNuspec>
</PropertyGroup>
</Target>
<Target Name="GenerateNuspec" DependsOnTargets="$(GenerateNuspecDependsOn);_CalculateInputsOutputsForPack;_GetProjectReferenceVersions" Condition="$(IsPackable) == 'true'" Inputs="@(NuGetPackInput)" Outputs="@(NuGetPackOutput)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Call Pack -->
<PackTask PackItem="$(PackProjectInputFile)" PackageFiles="@(_PackageFiles)" PackageFilesToExclude="@(_PackageFilesToExclude)" PackageVersion="$(PackageVersion)" PackageId="$(PackageId)" Title="$(Title)" Authors="$(Authors)" Description="$(PackageDescription)" Copyright="$(Copyright)" RequireLicenseAcceptance="$(PackageRequireLicenseAcceptance)" LicenseUrl="$(PackageLicenseUrl)" ProjectUrl="$(PackageProjectUrl)" IconUrl="$(PackageIconUrl)" ReleaseNotes="$(PackageReleaseNotes)" Tags="$(PackageTags)" DevelopmentDependency="$(DevelopmentDependency)" BuildOutputInPackage="@(_BuildOutputInPackage)" ProjectReferencesWithVersions="@(_ProjectReferencesWithVersions)" TargetPathsToSymbols="@(_TargetPathsToSymbols)" TargetFrameworks="@(_TargetFrameworks)" AssemblyName="$(AssemblyName)" PackageOutputPath="$(PackageOutputAbsolutePath)" IncludeSymbols="$(IncludeSymbols)" IncludeSource="$(IncludeSource)" PackageTypes="$(PackageType)" IsTool="$(IsTool)" RepositoryUrl="$(RepositoryUrl)" RepositoryType="$(RepositoryType)" SourceFiles="@(_SourceFiles-&gt;Distinct())" NoPackageAnalysis="$(NoPackageAnalysis)" MinClientVersion="$(MinClientVersion)" Serviceable="$(Serviceable)" FrameworkAssemblyReferences="@(_FrameworkAssemblyReferences)" ContinuePackingAfterGeneratingNuspec="$(ContinuePackingAfterGeneratingNuspec)" NuspecOutputPath="$(NuspecOutputAbsolutePath)" IncludeBuildOutput="$(IncludeBuildOutput)" BuildOutputFolder="$(BuildOutputTargetFolder)" ContentTargetFolders="$(ContentTargetFolders)" RestoreOutputPath="$(RestoreOutputAbsolutePath)" NuspecFile="$(NuspecFileAbsolutePath)" NuspecBasePath="$(NuspecBasePath)" NuspecProperties="$(NuspecProperties)" AllowedOutputExtensionsInPackageBuildOutputFolder="$(AllowedOutputExtensionsInPackageBuildOutputFolder)" AllowedOutputExtensionsInSymbolsPackageBuildOutputFolder="$(AllowedOutputExtensionsInSymbolsPackageBuildOutputFolder)" />
</Target>
<!--
============================================================
_LoadPackGraphEntryPoints
Find project entry point and load them into items.
============================================================
-->
<Target Name="_LoadPackInputItems" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Allow overriding items with PackProjectInputFile -->
<PropertyGroup Condition="'$(PackProjectInputFile)' == ''">
<PackProjectInputFile>$(MSBuildProjectFullPath)</PackProjectInputFile>
</PropertyGroup>
</Target>
<Target Name="_GetProjectReferenceVersions" DependsOnTargets="_CalculateInputsOutputsForPack;$(GetPackageVersionDependsOn)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ConvertToAbsolutePath Paths="$(RestoreOutputPath)">
<Output TaskParameter="AbsolutePaths" PropertyName="RestoreOutputAbsolutePath" />
</ConvertToAbsolutePath>
<ConvertToAbsolutePath Condition="'$(ProjectAssetsFile)' != ''" Paths="$(ProjectAssetsFile)">
<Output TaskParameter="AbsolutePaths" PropertyName="ProjectAssetsFileAbsolutePath" />
</ConvertToAbsolutePath>
<GetProjectReferencesFromAssetsFileTask RestoreOutputAbsolutePath="$(RestoreOutputAbsolutePath)" ProjectAssetsFileAbsolutePath="$(ProjectAssetsFileAbsolutePath)">
<Output TaskParameter="ProjectReferences" ItemName="_ProjectReferencesFromAssetsFile" />
</GetProjectReferencesFromAssetsFileTask>
<Msbuild Projects="@(_ProjectReferencesFromAssetsFile)" Targets="_GetProjectVersion" SkipNonexistentTargets="true" SkipNonexistentProjects="true" Properties="BuildProjectReferences=false;">
<Output TaskParameter="TargetOutputs" ItemName="_ProjectReferencesWithVersions" />
</Msbuild>
</Target>
<Target Name="_GetProjectVersion" DependsOnTargets="$(GetPackageVersionDependsOn)" Returns="@(_ProjectPathWithVersion)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<_ProjectPathWithVersion Include="$(MSBuildProjectFullPath)">
<ProjectVersion Condition="'$(PackageVersion)' != ''">$(PackageVersion)</ProjectVersion>
<ProjectVersion Condition="'$(PackageVersion)' == ''">1.0.0</ProjectVersion>
</_ProjectPathWithVersion>
</ItemGroup>
</Target>
<Target Name="_WalkEachTargetPerFramework" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<MSBuild Condition="'$(IncludeBuildOutput)' == 'true'" Projects="$(MSBuildProjectFullPath)" Targets="_GetBuildOutputFilesWithTfm" Properties="TargetFramework=%(_TargetFrameworks.Identity);">
<Output TaskParameter="TargetOutputs" ItemName="_BuildOutputInPackage" />
</MSBuild>
<MSBuild Condition="'$(TargetsForTfmSpecificContentInPackage)' != ''" Projects="$(MSBuildProjectFullPath)" Targets="_GetTfmSpecificContentForPackage" Properties="TargetFramework=%(_TargetFrameworks.Identity);">
<Output TaskParameter="TargetOutputs" ItemName="_PackageFiles" />
</MSBuild>
<MSBuild Condition="'$(IncludeBuildOutput)' == 'true'" Projects="$(MSBuildProjectFullPath)" Targets="_GetDebugSymbolsWithTfm" Properties="TargetFramework=%(_TargetFrameworks.Identity);">
<Output TaskParameter="TargetOutputs" ItemName="_TargetPathsToSymbols" />
</MSBuild>
<MSBuild Condition="'$(IncludeSource)' == 'true'" Projects="$(MSBuildProjectFullPath)" Targets="SourceFilesProjectOutputGroup" Properties="TargetFramework=%(_TargetFrameworks.Identity);&#xD;&#xA; BuildProjectReferences=false;">
<Output TaskParameter="TargetOutputs" ItemName="_SourceFiles" />
</MSBuild>
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_GetFrameworkAssemblyReferences" Properties="TargetFramework=%(_TargetFrameworks.Identity);&#xD;&#xA; BuildProjectReferences=false;">
<Output TaskParameter="TargetOutputs" ItemName="_FrameworkAssemblyReferences" />
</MSBuild>
</Target>
<Target Name="_GetFrameworkAssemblyReferences" DependsOnTargets="ResolveReferences" Returns="@(TfmSpecificFrameworkAssemblyReferences)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<TfmSpecificFrameworkAssemblyReferences Include="@(ReferencePath->'%(OriginalItemSpec)')" Condition="'%(ReferencePath.Pack)' != 'false' AND '%(ReferencePath.ResolvedFrom)' == '{TargetFrameworkDirectory}'">
<TargetFramework>$(TargetFramework)</TargetFramework>
</TfmSpecificFrameworkAssemblyReferences>
</ItemGroup>
</Target>
<Target Name="_GetBuildOutputFilesWithTfm" DependsOnTargets="BuiltProjectOutputGroup;DocumentationProjectOutputGroup;SatelliteDllsProjectOutputGroup;_AddPriFileToPackBuildOutput;$(TargetsForTfmSpecificBuildOutput)" Returns="@(BuildOutputInPackage)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<BuildOutputInPackage Include="@(SatelliteDllsProjectOutputGroupOutput);&#xD;&#xA; @(BuiltProjectOutputGroupOutput);&#xD;&#xA; @(DocumentationProjectOutputGroupOutput);&#xD;&#xA; @(_PathToPriFile)" />
</ItemGroup>
</Target>
<Target Name="_GetTfmSpecificContentForPackage" DependsOnTargets="$(TargetsForTfmSpecificContentInPackage)" Returns="@(TfmSpecificPackageFile)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<Target Name="_GetDebugSymbolsWithTfm" DependsOnTargets="DebugSymbolsProjectOutputGroup" Returns="@(_TargetPathsToSymbolsWithTfm)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<_TargetPathsToSymbolsWithTfm Include="@(DebugSymbolsProjectOutputGroupOutput)">
<TargetFramework>$(TargetFramework)</TargetFramework>
</_TargetPathsToSymbolsWithTfm>
</ItemGroup>
</Target>
<!--Projects with target framework like UWP, Win8, wpa81 produce a Pri file
in their bin dir. This Pri file is not included in the BuiltProjectGroupOutput, and
has to be added manually here.-->
<Target Name="_AddPriFileToPackBuildOutput" Returns="@(_PathToPriFile)" DependsOnTargets="$(AddPriFileDependsOn)" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Condition="'$(IncludeProjectPriFile)' == 'true'">
<_PathToPriFile Include="$(ProjectPriFullPath)">
<FinalOutputPath>$(ProjectPriFullPath)</FinalOutputPath>
<TargetPath>$(ProjectPriFileName)</TargetPath>
</_PathToPriFile>
</ItemGroup>
</Target>
<!--
============================================================
_GetPackageFiles
Entry point for generating the project to project references.
============================================================
-->
<Target Name="_GetPackageFiles" Condition="$(IncludeContentInPack) == 'true'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<_PackageFilesToExclude Include="@(Content)" Condition="'%(Content.Pack)' == 'false'" />
</ItemGroup>
<!-- Include PackageFiles and Content of the project being packed -->
<ItemGroup>
<_PackageFiles Include="@(Content)" Condition=" %(Content.Pack) != 'false' ">
<BuildAction Condition="'%(Content.BuildAction)' == ''">Content</BuildAction>
</_PackageFiles>
<_PackageFiles Include="@(Compile)" Condition=" %(Compile.Pack) == 'true' ">
<BuildAction Condition="'%(Compile.BuildAction)' == ''">Compile</BuildAction>
</_PackageFiles>
<_PackageFiles Include="@(None)" Condition=" %(None.Pack) == 'true' ">
<BuildAction Condition="'%(None.BuildAction)' == ''">None</BuildAction>
</_PackageFiles>
<_PackageFiles Include="@(EmbeddedResource)" Condition=" %(EmbeddedResource.Pack) == 'true' ">
<BuildAction Condition="'%(EmbeddedResource.BuildAction)' == ''">EmbeddedResource</BuildAction>
</_PackageFiles>
<_PackageFiles Include="@(ApplicationDefinition)" Condition=" %(ApplicationDefinition.Pack) == 'true' ">
<BuildAction Condition="'%(ApplicationDefinition.BuildAction)' == ''">ApplicationDefinition</BuildAction>
</_PackageFiles>
<_PackageFiles Include="@(Page)" Condition=" %(Page.Pack) == 'true' ">
<BuildAction Condition="'%(Page.BuildAction)' == ''">Page</BuildAction>
</_PackageFiles>
<_PackageFiles Include="@(Resource)" Condition=" %(Resource.Pack) == 'true' ">
<BuildAction Condition="'%(Resource.BuildAction)' == ''">Resource</BuildAction>
</_PackageFiles>
<_PackageFiles Include="@(SplashScreen)" Condition=" %(SplashScreen.Pack) == 'true' ">
<BuildAction Condition="'%(SplashScreen.BuildAction)' == ''">SplashScreen</BuildAction>
</_PackageFiles>
<_PackageFiles Include="@(DesignData)" Condition=" %(DesignData.Pack) == 'true' ">
<BuildAction Condition="'%(DesignData.BuildAction)' == ''">DesignData</BuildAction>
</_PackageFiles>
<_PackageFiles Include="@(DesignDataWithDesignTimeCreatableTypes)" Condition=" %(DesignDataWithDesignTimeCreatableTypes.Pack) == 'true' ">
<BuildAction Condition="'%(DesignDataWithDesignTimeCreatableTypes.BuildAction)' == ''">DesignDataWithDesignTimeCreatableTypes</BuildAction>
</_PackageFiles>
<_PackageFiles Include="@(CodeAnalysisDictionary)" Condition=" %(CodeAnalysisDictionary.Pack) == 'true' ">
<BuildAction Condition="'%(CodeAnalysisDictionary.BuildAction)' == ''">CodeAnalysisDictionary</BuildAction>
</_PackageFiles>
<_PackageFiles Include="@(AndroidAsset)" Condition=" %(AndroidAsset.Pack) == 'true' ">
<BuildAction Condition="'%(AndroidAsset.BuildAction)' == ''">AndroidAsset</BuildAction>
</_PackageFiles>
<_PackageFiles Include="@(AndroidResource)" Condition=" %(AndroidResource.Pack) == 'true' ">
<BuildAction Condition="'%(AndroidResource.BuildAction)' == ''">AndroidResource</BuildAction>
</_PackageFiles>
<_PackageFiles Include="@(BundleResource)" Condition=" %(BundleResource.Pack) == 'true' ">
<BuildAction Condition="'%(BundleResource.BuildAction)' == ''">BundleResource</BuildAction>
</_PackageFiles>
</ItemGroup>
</Target>
<!--
============================================================================================================================================
</Import>
C:\Program Files\dotnet\sdk\2.1.100\Sdks\Microsoft.NET.Sdk\Sdk\Sdk.targets
============================================================================================================================================
-->
<!--
============================================================================================================================================
</Import>
E:\vspreviewcrash\dotnet\lib\Http\HttpFree.fsproj
============================================================================================================================================
-->
</Project>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment