Spaces:
Running
Running
<!-- | |
*********************************************************************************************** | |
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. | |
*********************************************************************************************** | |
This target file contains the NuGet Restore target for walking the project and reference graph | |
and restoring dependencies from the graph. | |
Ways to use this targets file: | |
1. Invoke it directly and provide project file paths using $(RestoreGraphProjectInput). | |
2. With a solution this may be used as a target in the metaproj. | |
3. Import the targets file from a project. | |
Restore flow summary: | |
1. Top level projects (entry points) are determined. | |
2. Each project and all of its project references are walked recursively. | |
3. The project is evaluated for each $(TargetFramework). Items are created | |
for project properties and dependencies. Each item is marked | |
with the project it came from so that it can be matched up later. | |
4. All restore items generated by the walk are grouped together by | |
project and convert into a project spec. | |
The result file contains: | |
1. A list of projects to restore. | |
2. The complete closure of all projects referenced (Includes project references that are not being restored directly). | |
3. Package and project dependencies for each project. | |
4. DotnetCliTool references | |
--> | |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |
<PropertyGroup> | |
<!-- Mark that this target file has been loaded. --> | |
<IsRestoreTargetsFileLoaded>true</IsRestoreTargetsFileLoaded> | |
<!-- Load NuGet.Build.Tasks.dll, this can be overridden to use a different version with $(RestoreTaskAssemblyFile) --> | |
<RestoreTaskAssemblyFile Condition=" '$(RestoreTaskAssemblyFile)' == '' ">NuGet.Build.Tasks.dll</RestoreTaskAssemblyFile> | |
<!-- Do not hide errors and warnings by default --> | |
<HideWarningsAndErrors Condition=" '$(HideWarningsAndErrors)' == '' ">false</HideWarningsAndErrors> | |
<!-- Recurse by default --> | |
<RestoreRecursive Condition=" '$(RestoreRecursive)' == '' ">true</RestoreRecursive> | |
<RestoreUseSkipNonexistentTargets Condition=" '$(RestoreUseSkipNonexistentTargets)' == '' ">true</RestoreUseSkipNonexistentTargets> | |
<!-- RuntimeIdentifier compatibility check --> | |
<ValidateRuntimeIdentifierCompatibility Condition=" '$(ValidateRuntimeIdentifierCompatibility)' == '' ">false</ValidateRuntimeIdentifierCompatibility> | |
<!-- Error handling while walking projects --> | |
<RestoreContinueOnError Condition=" '$(RestoreContinueOnError)' == '' ">WarnAndContinue</RestoreContinueOnError> | |
<!-- Build in parallel --> | |
<RestoreBuildInParallel Condition=" '$(BuildInParallel)' != '' ">$(BuildInParallel)</RestoreBuildInParallel> | |
<RestoreBuildInParallel Condition=" '$(RestoreBuildInParallel)' == '' ">true</RestoreBuildInParallel> | |
<!-- Check if the restore target was executed on a sln file --> | |
<_RestoreSolutionFileUsed Condition=" '$(_RestoreSolutionFileUsed)' == '' AND '$(SolutionDir)' != '' AND $(MSBuildProjectFullPath.EndsWith('.metaproj')) == 'true' ">true</_RestoreSolutionFileUsed> | |
<!-- We default to MSBuildInteractive. --> | |
<NuGetInteractive Condition=" '$(NuGetInteractive)' == '' ">$(MSBuildInteractive)</NuGetInteractive> | |
<!-- Mark that this targets file supports package download. --> | |
<PackageDownloadSupported>true</PackageDownloadSupported> | |
<!-- Mark that this targets file GetReferenceNearestTargetFrameworkTask task supports the TargetPlatformMoniker --> | |
<GetReferenceNearestTargetFrameworkTaskSupportsTargetPlatformParameter>true</GetReferenceNearestTargetFrameworkTaskSupportsTargetPlatformParameter> | |
<!-- Flag if the Central package file is enabled --> | |
<_CentralPackageVersionsEnabled Condition="'$(ManagePackageVersionsCentrally)' == 'true' AND '$(CentralPackageVersionsFileImported)' == 'true'">true</_CentralPackageVersionsEnabled> | |
</PropertyGroup> | |
<!-- | |
Visual Studio's project property page requires defaults to be set to inform customers what the default values are. | |
Project-system uses DefaultValueSourceLocation.AfterContext to detect when a customer's project changes the value, so these defaults must be set here in the targets file. | |
--> | |
<PropertyGroup> | |
<!-- Enable NuGetAudit by default --> | |
<NuGetAudit Condition=" '$(NuGetAudit)' == '' ">true</NuGetAudit> | |
<!-- Report on low severity vulnerabilities, and higher. Allowed values are: low, moderate, high, critical --> | |
<NuGetAuditLevel Condition=" '$(NuGetAuditLevel)' == '' ">low</NuGetAuditLevel> | |
<!-- Report known vulnerabilities on direct dependencies only. Allowed values are: direct, all --> | |
<NuGetAuditMode Condition="'$(NuGetAuditMode)' == '' | |
AND '$(NuGetExeSkipSdkAnalysisLevelCheck)' != 'true' | |
AND $([MSBuild]::VersionGreaterThanOrEquals($([MSBuild]::ValueOrDefault('$(SdkAnalysisLevel)', '0.0')), '9.0.100'))" | |
>all</NuGetAuditMode> | |
<NuGetAuditMode Condition=" '$(NuGetAuditMode)' == '' ">direct</NuGetAuditMode> | |
</PropertyGroup> | |
<PropertyGroup> | |
<!-- Exclude packages from changing restore inputs. --> | |
<_GenerateRestoreGraphProjectEntryInputProperties>ExcludeRestorePackageImports=true</_GenerateRestoreGraphProjectEntryInputProperties> | |
<!-- Standalone mode | |
This is used by NuGet.exe to inject targets into the project that will be | |
walked next. In normal /t:Restore mode this causes a duplicate import | |
since NuGet.targets it loaded as part of MSBuild, there is should be | |
skipped. --> | |
<_GenerateRestoreGraphProjectEntryInputProperties Condition=" '$(RestoreUseCustomAfterTargets)' == 'true' "> | |
$(_GenerateRestoreGraphProjectEntryInputProperties); | |
NuGetRestoreTargets=$(MSBuildThisFileFullPath); | |
RestoreUseCustomAfterTargets=$(RestoreUseCustomAfterTargets); | |
CustomAfterMicrosoftCommonCrossTargetingTargets=$(MSBuildThisFileFullPath); | |
CustomAfterMicrosoftCommonTargets=$(MSBuildThisFileFullPath); | |
</_GenerateRestoreGraphProjectEntryInputProperties> | |
<!-- Include SolutionDir and SolutionName for solution restores and persist these properties during the walk. --> | |
<_GenerateRestoreGraphProjectEntryInputProperties Condition=" '$(_RestoreSolutionFileUsed)' == 'true' "> | |
$(_GenerateRestoreGraphProjectEntryInputProperties); | |
_RestoreSolutionFileUsed=true; | |
SolutionDir=$(SolutionDir); | |
SolutionName=$(SolutionName); | |
SolutionFileName=$(SolutionFileName); | |
SolutionPath=$(SolutionPath); | |
SolutionExt=$(SolutionExt); | |
</_GenerateRestoreGraphProjectEntryInputProperties> | |
</PropertyGroup> | |
<ItemGroup Condition="'$(ManagePackageVersionsCentrally)' == 'true' And '$(RestoreEnableGlobalPackageReference)' != 'false'"> | |
<!-- | |
Add GlobalPackageReference items to the PackageReference item group with no version. | |
Global package references only include the same assets as a development dependency (runtime; build; native; contentfiles; analyzers) | |
because those kind of packages are the best candidate for a global package reference. They are generally packages that | |
extend the build. | |
Global package references have all assets private because central package references are generally packages that provide | |
versioning, signing, etc and should not flow to downstream dependencies. Also, central package references are already | |
referenced by every project in the tree so they don't need to be transitive. | |
--> | |
<PackageReference Include="@(GlobalPackageReference)" | |
Version="" | |
IncludeAssets="Runtime;Build;Native;contentFiles;Analyzers" | |
PrivateAssets="All" /> | |
<!-- | |
Add GlobalPackageReference items to the PackageVersion item group with the version. | |
--> | |
<PackageVersion Include="@(GlobalPackageReference)" | |
Version="%(Version)" /> | |
</ItemGroup> | |
<!-- Tasks --> | |
<UsingTask TaskName="NuGet.Build.Tasks.RestoreTask" AssemblyFile="$(RestoreTaskAssemblyFile)" /> | |
<UsingTask TaskName="NuGet.Build.Tasks.WriteRestoreGraphTask" AssemblyFile="$(RestoreTaskAssemblyFile)" /> | |
<UsingTask TaskName="NuGet.Build.Tasks.GetRestoreProjectJsonPathTask" AssemblyFile="$(RestoreTaskAssemblyFile)" /> | |
<UsingTask TaskName="NuGet.Build.Tasks.GetRestoreProjectReferencesTask" AssemblyFile="$(RestoreTaskAssemblyFile)" /> | |
<UsingTask TaskName="NuGet.Build.Tasks.GetRestorePackageReferencesTask" AssemblyFile="$(RestoreTaskAssemblyFile)" /> | |
<UsingTask TaskName="NuGet.Build.Tasks.GetCentralPackageVersionsTask" AssemblyFile="$(RestoreTaskAssemblyFile)" /> | |
<UsingTask TaskName="NuGet.Build.Tasks.GetRestorePackageDownloadsTask" AssemblyFile="$(RestoreTaskAssemblyFile)" /> | |
<UsingTask TaskName="NuGet.Build.Tasks.GetRestoreFrameworkReferencesTask" AssemblyFile="$(RestoreTaskAssemblyFile)" /> | |
<UsingTask TaskName="NuGet.Build.Tasks.GetRestoreNuGetAuditSuppressionsTask" AssemblyFile="$(RestoreTaskAssemblyFile)" /> | |
<UsingTask TaskName="NuGet.Build.Tasks.GetRestoreDotnetCliToolsTask" AssemblyFile="$(RestoreTaskAssemblyFile)" /> | |
<UsingTask TaskName="NuGet.Build.Tasks.GetProjectTargetFrameworksTask" AssemblyFile="$(RestoreTaskAssemblyFile)" /> | |
<UsingTask TaskName="NuGet.Build.Tasks.GetRestoreSolutionProjectsTask" AssemblyFile="$(RestoreTaskAssemblyFile)" /> | |
<UsingTask TaskName="NuGet.Build.Tasks.GetRestoreSettingsTask" AssemblyFile="$(RestoreTaskAssemblyFile)" /> | |
<UsingTask TaskName="NuGet.Build.Tasks.WarnForInvalidProjectsTask" AssemblyFile="$(RestoreTaskAssemblyFile)" /> | |
<UsingTask TaskName="NuGet.Build.Tasks.GetReferenceNearestTargetFrameworkTask" AssemblyFile="$(RestoreTaskAssemblyFile)" /> | |
<UsingTask TaskName="NuGet.Build.Tasks.GetRestoreProjectStyleTask" AssemblyFile="$(RestoreTaskAssemblyFile)" /> | |
<UsingTask TaskName="NuGet.Build.Tasks.NuGetMessageTask" AssemblyFile="$(RestoreTaskAssemblyFile)" /> | |
<UsingTask TaskName="NuGet.Build.Tasks.CheckForDuplicateNuGetItemsTask" AssemblyFile="$(RestoreTaskAssemblyFile)" /> | |
<UsingTask TaskName="NuGet.Build.Tasks.GetGlobalPropertyValueTask" AssemblyFile="$(RestoreTaskAssemblyFile)" /> | |
<!-- | |
============================================================ | |
Restore | |
Main entry point for restoring packages | |
============================================================ | |
--> | |
<Target Name="Restore" DependsOnTargets="_GenerateRestoreGraph"> | |
<!-- Drop any duplicate items --> | |
<RemoveDuplicates | |
Inputs="@(_RestoreGraphEntry)"> | |
<Output | |
TaskParameter="Filtered" | |
ItemName="_RestoreGraphEntryFiltered" /> | |
</RemoveDuplicates> | |
<!-- Call restore --> | |
<RestoreTask | |
RestoreGraphItems="@(_RestoreGraphEntryFiltered)" | |
RestoreDisableParallel="$(RestoreDisableParallel)" | |
RestoreNoCache="$(RestoreNoCache)" | |
RestoreNoHttpCache="$(RestoreNoHttpCache)" | |
RestoreIgnoreFailedSources="$(RestoreIgnoreFailedSources)" | |
RestoreRecursive="$(RestoreRecursive)" | |
RestoreForce="$(RestoreForce)" | |
HideWarningsAndErrors="$(HideWarningsAndErrors)" | |
Interactive="$(NuGetInteractive)" | |
RestoreForceEvaluate="$(RestoreForceEvaluate)" | |
RestorePackagesConfig="$(RestorePackagesConfig)" | |
EmbedFilesInBinlog="$(RestoreEmbedFilesInBinlog)"> | |
<Output TaskParameter="EmbedInBinlog" ItemName="EmbedInBinlog" /> | |
</RestoreTask> | |
</Target> | |
<!-- | |
============================================================ | |
GenerateRestoreGraphFile | |
Writes the output of _GenerateRestoreGraph to disk | |
============================================================ | |
--> | |
<Target Name="GenerateRestoreGraphFile" DependsOnTargets="_GenerateRestoreGraph"> | |
<!-- Validate --> | |
<Error Condition="$(RestoreGraphOutputPath) == ''" Text="Missing RestoreGraphOutputPath property!" /> | |
<!-- Drop any duplicate items --> | |
<RemoveDuplicates | |
Inputs="@(_RestoreGraphEntry)"> | |
<Output | |
TaskParameter="Filtered" | |
ItemName="_RestoreGraphEntryFiltered" /> | |
</RemoveDuplicates> | |
<!-- Write file --> | |
<WriteRestoreGraphTask | |
RestoreGraphItems="@(_RestoreGraphEntryFiltered)" | |
RestoreGraphOutputPath="$(RestoreGraphOutputPath)" | |
RestoreRecursive="$(RestoreRecursive)" /> | |
</Target> | |
<!-- | |
============================================================ | |
CollectPackageReferences | |
Gathers all PackageReference items from the project. | |
This target may be used as an extension point to modify | |
package references before NuGet reads them. | |
============================================================ | |
--> | |
<Target Name="CollectPackageReferences" Returns="@(PackageReference)" > | |
<!-- NOTE for design-time builds we need to ensure that we continue on error. --> | |
<PropertyGroup> | |
<CollectPackageReferencesContinueOnError>$(ContinueOnError)</CollectPackageReferencesContinueOnError> | |
<CollectPackageReferencesContinueOnError Condition="'$(ContinueOnError)' == '' ">false</CollectPackageReferencesContinueOnError> | |
</PropertyGroup> | |
<CheckForDuplicateNuGetItemsTask | |
Condition="'$(DisableCheckingDuplicateNuGetItems)' != 'true' " | |
Items="@(PackageReference)" | |
ItemName="PackageReference" | |
LogCode="NU1504" | |
MSBuildProjectFullPath="$(MSBuildProjectFullPath)" | |
TreatWarningsAsErrors="$(TreatWarningsAsErrors)" | |
WarningsAsErrors="$(WarningsAsErrors)" | |
WarningsNotAsErrors="$(WarningsNotAsErrors)" | |
NoWarn="$(NoWarn)" | |
ContinueOnError="$(CollectPackageReferencesContinueOnError)" | |
> | |
<Output TaskParameter="DeduplicatedItems" ItemName="DeduplicatedPackageReferences" /> | |
</CheckForDuplicateNuGetItemsTask> | |
<ItemGroup Condition="'@(DeduplicatedPackageReferences)' != ''"> | |
<PackageReference Remove="@(PackageReference)" /> | |
<PackageReference Include="@(DeduplicatedPackageReferences)" /> | |
</ItemGroup> | |
</Target> | |
<!-- | |
============================================================ | |
CollectCentralPackageVersions | |
Gathers all PackageVersion items from the central package versions file. | |
============================================================ | |
--> | |
<Target Name="CollectCentralPackageVersions" Returns="@(PackageVersion)"> | |
<!-- NOTE for design-time builds we need to ensure that we continue on error. --> | |
<PropertyGroup> | |
<CollectCentralPackageVersionsContinueOnError>$(ContinueOnError)</CollectCentralPackageVersionsContinueOnError> | |
<CollectCentralPackageVersionsContinueOnError Condition="'$(ContinueOnError)' == '' ">false</CollectCentralPackageVersionsContinueOnError> | |
</PropertyGroup> | |
<CheckForDuplicateNuGetItemsTask | |
Condition="'$(DisableCheckingDuplicateNuGetItems)' != 'true' " | |
Items="@(PackageVersion)" | |
ItemName="PackageVersion" | |
LogCode="NU1506" | |
MSBuildProjectFullPath="$(MSBuildProjectFullPath)" | |
TreatWarningsAsErrors="$(TreatWarningsAsErrors)" | |
WarningsAsErrors="$(WarningsAsErrors)" | |
WarningsNotAsErrors="$(WarningsNotAsErrors)" | |
NoWarn="$(NoWarn)" | |
ContinueOnError="$(CollectCentralPackageVersionsContinueOnError)" | |
> | |
<Output TaskParameter="DeduplicatedItems" ItemName="DeduplicatedPackageVersions" /> | |
</CheckForDuplicateNuGetItemsTask> | |
<ItemGroup Condition="'@(DeduplicatedPackageVersions)' != ''"> | |
<PackageVersion Remove="@(PackageVersion)" /> | |
<PackageVersion Include="@(DeduplicatedPackageVersions)" /> | |
</ItemGroup> | |
</Target> | |
<!-- | |
============================================================ | |
CollectPackageDownloads | |
Gathers all PackageDownload items from the project. | |
This target may be used as an extension point to modify | |
package downloads before NuGet reads them. | |
============================================================ | |
--> | |
<Target Name="CollectPackageDownloads" Returns="@(PackageDownload)"> | |
<!-- NOTE for design-time builds we need to ensure that we continue on error. --> | |
<PropertyGroup> | |
<CollectPackageDownloadsContinueOnError>$(ContinueOnError)</CollectPackageDownloadsContinueOnError> | |
<CollectPackageDownloadsContinueOnError Condition="'$(ContinueOnError)' == '' ">false</CollectPackageDownloadsContinueOnError> | |
</PropertyGroup> | |
<CheckForDuplicateNuGetItemsTask | |
Condition="'$(DisableCheckingDuplicateNuGetItems)' != 'true' " | |
Items="@(PackageDownload)" | |
ItemName="PackageDownload" | |
LogCode="NU1505" | |
MSBuildProjectFullPath="$(MSBuildProjectFullPath)" | |
TreatWarningsAsErrors="$(TreatWarningsAsErrors)" | |
WarningsAsErrors="$(WarningsAsErrors)" | |
WarningsNotAsErrors="$(WarningsNotAsErrors)" | |
NoWarn="$(NoWarn)" | |
ContinueOnError="$(CollectPackageDownloadsContinueOnError)" | |
> | |
<Output TaskParameter="DeduplicatedItems" ItemName="DeduplicatedPackageDownloads" /> | |
</CheckForDuplicateNuGetItemsTask> | |
<ItemGroup Condition="'@(DeduplicatedPackageDownloads)' != ''"> | |
<PackageDownload Remove="@(PackageDownload)" /> | |
<PackageDownload Include="@(DeduplicatedPackageDownloads)" /> | |
</ItemGroup> | |
</Target> | |
<!-- | |
============================================================ | |
CollectFrameworkReferences | |
============================================================ | |
--> | |
<Target Name="CollectFrameworkReferences" Returns="@(_FrameworkReferenceForRestore)"> | |
<ItemGroup> | |
<_FrameworkReferenceForRestore | |
Include="@(FrameworkReference)" | |
Condition="'%(FrameworkReference.IsTransitiveFrameworkReference)' != 'true'"/> | |
</ItemGroup> | |
</Target> | |
<!-- | |
============================================================ | |
CollectNuGetAuditSuppressions | |
Gathers all NuGetAuditSuppress items from the project. | |
This target may be used as an extension point to modify | |
advisory suppressions before NuGet reads them. | |
============================================================ | |
--> | |
<Target Name="CollectNuGetAuditSuppressions" Returns="@(NuGetAuditSuppress)"> | |
<!-- NOTE for design-time builds we need to ensure that we continue on error. --> | |
<PropertyGroup> | |
<CollectNuGetAuditSuppressionsContinueOnError>$(ContinueOnError)</CollectNuGetAuditSuppressionsContinueOnError> | |
<CollectNuGetAuditSuppressionsContinueOnError Condition="'$(ContinueOnError)' == '' ">false</CollectNuGetAuditSuppressionsContinueOnError> | |
</PropertyGroup> | |
<CheckForDuplicateNuGetItemsTask | |
Items="@(NuGetAuditSuppress)" | |
ItemName="NuGetAuditSuppress" | |
LogCode="NU1505" | |
MSBuildProjectFullPath="$(MSBuildProjectFullPath)" | |
TreatWarningsAsErrors="$(TreatWarningsAsErrors)" | |
WarningsAsErrors="$(WarningsAsErrors)" | |
WarningsNotAsErrors="$(WarningsNotAsErrors)" | |
NoWarn="$(NoWarn)" | |
ContinueOnError="$(CollectNuGetAuditSuppressionsContinueOnError)" | |
> | |
<Output TaskParameter="DeduplicatedItems" ItemName="DeduplicatedNuGetAuditSuppressions" /> | |
</CheckForDuplicateNuGetItemsTask> | |
<ItemGroup Condition="'@(DeduplicatedNuGetAuditSuppressions)' != ''"> | |
<NuGetAuditSuppress Remove="@(NuGetAuditSuppress)" /> | |
<NuGetAuditSuppress Include="@(DeduplicatedNuGetAuditSuppressions)" /> | |
</ItemGroup> | |
</Target> | |
<!-- | |
============================================================ | |
_CollectRestoreInputs | |
Runs all the 'Collect' targets | |
============================================================ | |
--> | |
<Target Name="_CollectRestoreInputs" | |
DependsOnTargets="CollectPackageReferences;CollectPackageDownloads;CollectFrameworkReferences;CollectCentralPackageVersions;CollectNuGetAuditSuppressions"> | |
</Target> | |
<!-- | |
============================================================ | |
_LoadRestoreGraphEntryPoints | |
Find project entry points and load them into items. | |
============================================================ | |
--> | |
<Target Name="_LoadRestoreGraphEntryPoints" Returns="@(RestoreGraphProjectInputItems)"> | |
<!-- Allow overriding items with RestoreGraphProjectInput --> | |
<ItemGroup Condition=" @(RestoreGraphProjectInputItems) == '' "> | |
<RestoreGraphProjectInputItems Include="$(RestoreGraphProjectInput)" /> | |
</ItemGroup> | |
<!-- Project case --> | |
<ItemGroup Condition=" $(MSBuildProjectFullPath.EndsWith('.metaproj')) != 'true' AND @(RestoreGraphProjectInputItems) == '' "> | |
<RestoreGraphProjectInputItems Include="$(MSBuildProjectFullPath)" /> | |
</ItemGroup> | |
<!-- Solution case --> | |
<GetRestoreSolutionProjectsTask | |
Condition=" $(MSBuildProjectFullPath.EndsWith('.metaproj')) == 'true' AND @(RestoreGraphProjectInputItems) == '' " | |
ProjectReferences="@(ProjectReference)" | |
SolutionFilePath="$(MSBuildProjectFullPath)"> | |
<Output | |
TaskParameter="OutputProjectReferences" | |
ItemName="RestoreGraphProjectInputItems" /> | |
</GetRestoreSolutionProjectsTask> | |
</Target> | |
<!-- | |
============================================================ | |
_FilterRestoreGraphProjectInputItems | |
Filter out unsupported project entry points. | |
============================================================ | |
--> | |
<Target Name="_FilterRestoreGraphProjectInputItems" DependsOnTargets="_LoadRestoreGraphEntryPoints" | |
Returns="@(FilteredRestoreGraphProjectInputItems)"> | |
<PropertyGroup> | |
<RestoreProjectFilterMode Condition=" '$(RestoreProjectFilterMode)' == '' ">exclusionlist</RestoreProjectFilterMode> | |
</PropertyGroup> | |
<!-- Filter to a list of known supported types --> | |
<ItemGroup Condition=" '$(RestoreProjectFilterMode)' == 'inclusionlist' "> | |
<_FilteredRestoreGraphProjectInputItemsTmp | |
Include="@(RestoreGraphProjectInputItems)" | |
Condition=" '%(RestoreGraphProjectInputItems.Extension)' == '.csproj' Or | |
'%(RestoreGraphProjectInputItems.Extension)' == '.vbproj' Or | |
'%(RestoreGraphProjectInputItems.Extension)' == '.fsproj' Or | |
'%(RestoreGraphProjectInputItems.Extension)' == '.nuproj' Or | |
'%(RestoreGraphProjectInputItems.Extension)' == '.proj' Or | |
'%(RestoreGraphProjectInputItems.Extension)' == '.msbuildproj' Or | |
'%(RestoreGraphProjectInputItems.Extension)' == '.vcxproj' " /> | |
</ItemGroup> | |
<!-- Filter out disallowed types --> | |
<ItemGroup Condition=" '$(RestoreProjectFilterMode)' == 'exclusionlist' "> | |
<_FilteredRestoreGraphProjectInputItemsTmp | |
Include="@(RestoreGraphProjectInputItems)" | |
Condition=" '%(RestoreGraphProjectInputItems.Extension)' != '.metaproj' | |
AND '%(RestoreGraphProjectInputItems.Extension)' != '.shproj' | |
AND '%(RestoreGraphProjectInputItems.Extension)' != '.vcxitems' | |
AND '%(RestoreGraphProjectInputItems.Extension)' != '.vdproj' | |
AND '%(RestoreGraphProjectInputItems.Extension)' != '' " /> | |
</ItemGroup> | |
<!-- No filtering --> | |
<ItemGroup Condition=" '$(RestoreProjectFilterMode)' != 'exclusionlist' AND '$(RestoreProjectFilterMode)' != 'inclusionlist' "> | |
<_FilteredRestoreGraphProjectInputItemsTmp | |
Include="@(RestoreGraphProjectInputItems)" /> | |
</ItemGroup> | |
<!-- Remove duplicates --> | |
<RemoveDuplicates | |
Inputs="@(_FilteredRestoreGraphProjectInputItemsTmp)"> | |
<Output | |
TaskParameter="Filtered" | |
ItemName="FilteredRestoreGraphProjectInputItemsWithoutDuplicates" /> | |
</RemoveDuplicates> | |
<!-- Remove projects that do not support restore. --> | |
<!-- With SkipNonexistentTargets support --> | |
<MSBuild Condition=" '$(RestoreUseSkipNonexistentTargets)' == 'true' " | |
BuildInParallel="$(RestoreBuildInParallel)" | |
Projects="@(FilteredRestoreGraphProjectInputItemsWithoutDuplicates)" | |
Targets="_IsProjectRestoreSupported" | |
SkipNonexistentTargets="true" | |
Properties="$(_GenerateRestoreGraphProjectEntryInputProperties)"> | |
<Output | |
TaskParameter="TargetOutputs" | |
ItemName="FilteredRestoreGraphProjectInputItems" /> | |
</MSBuild> | |
<!-- Without SkipNonexistentTargets support --> | |
<MSBuild Condition=" '$(RestoreUseSkipNonexistentTargets)' != 'true' " | |
Projects="@(FilteredRestoreGraphProjectInputItemsWithoutDuplicates)" | |
Targets="_IsProjectRestoreSupported" | |
ContinueOnError="$(RestoreContinueOnError)" | |
Properties="$(_GenerateRestoreGraphProjectEntryInputProperties)"> | |
<Output | |
TaskParameter="TargetOutputs" | |
ItemName="FilteredRestoreGraphProjectInputItems" /> | |
</MSBuild> | |
<!-- Warn for projects that do not support restore. --> | |
<WarnForInvalidProjectsTask | |
Condition=" '$(DisableWarnForInvalidRestoreProjects)' != 'true' AND '$(HideWarningsAndErrors)' != 'true' " | |
AllProjects="@(FilteredRestoreGraphProjectInputItemsWithoutDuplicates)" | |
ValidProjects="@(FilteredRestoreGraphProjectInputItems)" /> | |
</Target> | |
<!-- | |
============================================================ | |
_GenerateRestoreGraph | |
Entry point for creating the project to project restore graph. | |
============================================================ | |
--> | |
<Target Name="_GenerateRestoreGraph" | |
DependsOnTargets="_FilterRestoreGraphProjectInputItems;_GetAllRestoreProjectPathItems" | |
Returns="@(_RestoreGraphEntry)"> | |
<Message Text="Generating dg file" Importance="low" /> | |
<Message Text="%(_RestoreProjectPathItems.Identity)" Importance="low" /> | |
<!-- Use all projects if RestoreRecursive is true. Otherwise use only the top level projects. --> | |
<ItemGroup> | |
<_GenerateRestoreGraphProjectEntryInput Include="@(FilteredRestoreGraphProjectInputItems)" Condition=" '$(RestoreRecursive)' != 'true' " /> | |
<_GenerateRestoreGraphProjectEntryInput Include="@(_RestoreProjectPathItems)" Condition=" '$(RestoreRecursive)' == 'true' " /> | |
</ItemGroup> | |
<!-- Add top level entries to the direct restore list. These projects will also restore tools. --> | |
<MSBuild | |
BuildInParallel="$(RestoreBuildInParallel)" | |
Projects="@(_GenerateRestoreGraphProjectEntryInput)" | |
Targets="_GenerateRestoreGraphProjectEntry" | |
Properties="$(_GenerateRestoreGraphProjectEntryInputProperties)"> | |
<Output | |
TaskParameter="TargetOutputs" | |
ItemName="_RestoreGraphEntry" /> | |
</MSBuild> | |
<!-- Generate a spec for every project including dependencies. --> | |
<MSBuild | |
BuildInParallel="$(RestoreBuildInParallel)" | |
Projects="@(_RestoreProjectPathItems)" | |
Targets="_GenerateProjectRestoreGraph" | |
Properties="$(_GenerateRestoreGraphProjectEntryInputProperties)"> | |
<Output | |
TaskParameter="TargetOutputs" | |
ItemName="_RestoreGraphEntry" /> | |
</MSBuild> | |
</Target> | |
<!-- | |
============================================================ | |
_GenerateRestoreGraphProjectEntry | |
Top level entry point within a project. | |
============================================================ | |
--> | |
<Target Name="_GenerateRestoreGraphProjectEntry" | |
DependsOnTargets="_GenerateRestoreSpecs;_GenerateDotnetCliToolReferenceSpecs" | |
Returns="@(_RestoreGraphEntry)"> | |
<!-- Returns restore graph entries for the project and all dependencies --> | |
</Target> | |
<!-- | |
============================================================ | |
_GenerateRestoreSpecs | |
Mark entry points for restore. | |
============================================================ | |
--> | |
<Target Name="_GenerateRestoreSpecs" | |
DependsOnTargets="_GetRestoreProjectStyle" | |
Returns="@(_RestoreGraphEntry)"> | |
<Message Text="Restore entry point $(MSBuildProjectFullPath)" Importance="low" /> | |
<!-- Mark entry point --> | |
<ItemGroup Condition=" '$(RestoreProjects)' == '' OR '$(RestoreProjects)' == 'true' "> | |
<_RestoreGraphEntry Include="$([System.Guid]::NewGuid())" Condition=" '$(RestoreProjectStyle)' != 'Unknown' "> | |
<Type>RestoreSpec</Type> | |
<ProjectUniqueName>$(MSBuildProjectFullPath)</ProjectUniqueName> | |
</_RestoreGraphEntry> | |
</ItemGroup> | |
</Target> | |
<!-- | |
============================================================ | |
_GenerateDotnetCliToolReferenceSpecs | |
Collect DotnetCliToolReferences | |
============================================================ | |
--> | |
<Target Name="_GenerateDotnetCliToolReferenceSpecs" | |
DependsOnTargets="_GetRestoreSettings" | |
Returns="@(_RestoreGraphEntry)"> | |
<PropertyGroup> | |
<DotnetCliToolTargetFramework Condition=" '$(DotnetCliToolTargetFramework)' == '' ">netcoreapp1.0</DotnetCliToolTargetFramework> | |
</PropertyGroup> | |
<!-- Write out tool references --> | |
<GetRestoreDotnetCliToolsTask | |
Condition=" '$(RestoreDotnetCliToolReferences)' == '' OR '$(RestoreDotnetCliToolReferences)' == 'true' " | |
ProjectPath="$(MSBuildProjectFullPath)" | |
ToolFramework="$(DotnetCliToolTargetFramework)" | |
RestorePackagesPath="$(_OutputPackagesPath)" | |
RestoreFallbackFolders="$(_OutputFallbackFolders)" | |
RestoreSources="$(_OutputSources)" | |
RestoreConfigFilePaths="$(_OutputConfigFilePaths)" | |
DotnetCliToolReferences="@(DotnetCliToolReference)"> | |
<Output | |
TaskParameter="RestoreGraphItems" | |
ItemName="_RestoreGraphEntry" /> | |
</GetRestoreDotnetCliToolsTask> | |
</Target> | |
<!-- | |
============================================================ | |
_GetProjectJsonPath | |
Discover the project.json path if one exists for the project. | |
============================================================ | |
--> | |
<Target Name="_GetProjectJsonPath" | |
Returns="$(_CurrentProjectJsonPath)"> | |
<!-- Get project.json path --> | |
<!-- Skip this if the project style is already set. --> | |
<GetRestoreProjectJsonPathTask | |
ProjectPath="$(MSBuildProjectFullPath)" | |
Condition=" '$(RestoreProjectStyle)' == 'ProjectJson' OR '$(RestoreProjectStyle)' == '' "> | |
<Output TaskParameter="ProjectJsonPath" PropertyName="_CurrentProjectJsonPath" /> | |
</GetRestoreProjectJsonPathTask> | |
</Target> | |
<!-- | |
============================================================ | |
_GetRestoreProjectStyle | |
Determine the project restore type. | |
============================================================ | |
--> | |
<Target Name="_GetRestoreProjectStyle" | |
DependsOnTargets="_GetProjectJsonPath;CollectPackageReferences" | |
Returns="$(RestoreProjectStyle);$(PackageReferenceCompatibleProjectStyle)"> | |
<!-- | |
Older versions of MSBuild do not support the Count() item function which is an optimization. Expanding the | |
entire item list into a semicolon delimited string is slower but older versions of MSBuild don't support it so | |
use the older logic if necessary | |
--> | |
<PropertyGroup Condition="'$(MSBuildAssemblyVersion)' < '15.0'"> | |
<_HasPackageReferenceItems Condition="'@(PackageReference)' != ''">true</_HasPackageReferenceItems> | |
</PropertyGroup> | |
<PropertyGroup Condition="'$(MSBuildAssemblyVersion)' >= '15.0'"> | |
<_HasPackageReferenceItems Condition="@(PackageReference->Count()) > 0">true</_HasPackageReferenceItems> | |
</PropertyGroup> | |
<GetRestoreProjectStyleTask | |
HasPackageReferenceItems="$(_HasPackageReferenceItems)" | |
MSBuildProjectDirectory="$(MSBuildProjectDirectory)" | |
MSBuildProjectName="$(MSBuildProjectName)" | |
ProjectJsonPath="$(_CurrentProjectJsonPath)" | |
RestoreProjectStyle="$(RestoreProjectStyle)"> | |
<Output TaskParameter="ProjectStyle" PropertyName="RestoreProjectStyle" /> | |
<Output TaskParameter="IsPackageReferenceCompatibleProjectStyle" PropertyName="PackageReferenceCompatibleProjectStyle" /> | |
</GetRestoreProjectStyleTask> | |
<PropertyGroup> | |
<_HasPackageReferenceItems /> | |
</PropertyGroup> | |
</Target> | |
<!-- | |
============================================================ | |
EnableIntermediateOutputPathMismatchWarning | |
If using PackageReference, enable an MSBuild warning if BaseIntermediateOutputPath is set to something different | |
than MSBuildProjectExtensionsPath, because it may be unexpected that the assets and related files wouldn't be written | |
to the BaseIntermediateOutputPath. | |
============================================================ | |
--> | |
<Target Name="EnableIntermediateOutputPathMismatchWarning" DependsOnTargets="_GetRestoreProjectStyle" | |
BeforeTargets="_CheckForInvalidConfigurationAndPlatform" | |
Condition="'$(RestoreProjectStyle)' == 'PackageReference'"> | |
<PropertyGroup Condition="'$(EnableBaseIntermediateOutputPathMismatchWarning)' == ''"> | |
<EnableBaseIntermediateOutputPathMismatchWarning>true</EnableBaseIntermediateOutputPathMismatchWarning> | |
</PropertyGroup> | |
</Target> | |
<!-- | |
============================================================ | |
_GetRestoreTargetFrameworksOutput | |
Read target frameworks from the project. | |
Non-NETCore project frameworks will be returned. | |
============================================================ | |
--> | |
<Target Name="_GetRestoreTargetFrameworksOutput" | |
DependsOnTargets="_GetRestoreProjectStyle;_GetRestoreTargetFrameworkOverride" | |
Returns="@(_RestoreTargetFrameworksOutputFiltered)"> | |
<PropertyGroup> | |
<_RestoreProjectFramework/> | |
<_TargetFrameworkToBeUsed Condition=" '$(_TargetFrameworkOverride)' == '' ">$(TargetFrameworks)</_TargetFrameworkToBeUsed> | |
</PropertyGroup> | |
<!-- For project.json projects target frameworks will be read from project.json. --> | |
<GetProjectTargetFrameworksTask | |
Condition=" '$(RestoreProjectStyle)' != 'ProjectJson'" | |
ProjectPath="$(MSBuildProjectFullPath)" | |
TargetFrameworks="$(_TargetFrameworkToBeUsed)" | |
TargetFramework="$(TargetFramework)" | |
TargetFrameworkMoniker="$(TargetFrameworkMoniker)" | |
TargetPlatformIdentifier="$(TargetPlatformIdentifier)" | |
TargetPlatformVersion="$(TargetPlatformVersion)" | |
TargetPlatformMinVersion="$(TargetPlatformMinVersion)"> | |
<Output | |
TaskParameter="ProjectTargetFrameworks" | |
PropertyName="_RestoreProjectFramework" /> | |
</GetProjectTargetFrameworksTask> | |
<ItemGroup Condition=" '$(_RestoreProjectFramework)' != '' "> | |
<_RestoreTargetFrameworksOutputFiltered Include="$(_RestoreProjectFramework.Split(';'))" /> | |
</ItemGroup> | |
</Target> | |
<!-- | |
============================================================ | |
_GetRestoreTargetFrameworksAsItems | |
Read $(TargetFrameworks) from the project as items. | |
Projects that do not have $(TargetFrameworks) will noop. | |
If $(TargetFramework) is specified globally, it'll be preferred over $(TargetFrameworks) | |
============================================================ | |
--> | |
<Target Name="_GetRestoreTargetFrameworksAsItems" | |
DependsOnTargets="_GetRestoreProjectStyle;_GetRestoreTargetFrameworkOverride" | |
Returns="@(_RestoreTargetFrameworkItems)"> | |
<ItemGroup Condition=" '$(TargetFrameworks)' != '' AND '$(_TargetFrameworkOverride)' == '' "> | |
<_RestoreTargetFrameworkItems Include="$(TargetFrameworks.Split(';'))" /> | |
</ItemGroup> | |
<ItemGroup Condition=" '$(TargetFrameworks)' != '' AND '$(_TargetFrameworkOverride)' != '' "> | |
<_RestoreTargetFrameworkItems Include="$(_TargetFrameworkOverride)" /> | |
</ItemGroup> | |
</Target> | |
<!-- | |
============================================================ | |
_GetRestoreSettings | |
============================================================ | |
--> | |
<Target Name="_GetRestoreSettings" | |
Condition=" '$(RestoreProjectStyle)' == 'PackageReference' OR '$(RestoreProjectStyle)' == 'ProjectJson' OR '$(RestoreProjectStyle)' == 'DotnetToolReference' OR '$(RestoreProjectStyle)' == 'PackagesConfig'" | |
DependsOnTargets="_GetRestoreSettingsOverrides;_GetRestoreSettingsCurrentProject;_GetRestoreSettingsAllFrameworks" | |
Returns="$(_OutputSources);$(_OutputPackagesPath);$(_OutputRepositoryPath);$(_OutputFallbackFolders);$(_OutputConfigFilePaths)"> | |
<PropertyGroup Condition=" '$(RestoreSolutionDirectory)' == '' AND '$(RestoreProjectStyle)' == 'PackagesConfig' AND '$(SolutionDir)' != '*Undefined*'"> | |
<RestoreSolutionDirectory>$(SolutionDir)</RestoreSolutionDirectory> | |
</PropertyGroup> | |
<!-- For transitive project styles, we rely on evaluating all the settings and including them in the dg spec to faciliate no-op restore--> | |
<GetRestoreSettingsTask | |
ProjectUniqueName="$(MSBuildProjectFullPath)" | |
RestoreSources="$(RestoreSources)" | |
RestorePackagesPath="$(RestorePackagesPath)" | |
RestoreRepositoryPath="$(RestoreRepositoryPath)" | |
RestoreFallbackFolders="$(RestoreFallbackFolders)" | |
RestoreConfigFile="$(RestoreConfigFile)" | |
RestoreRootConfigDirectory="$(RestoreRootConfigDirectory)" | |
RestoreSolutionDirectory="$(RestoreSolutionDirectory)" | |
RestoreSettingsPerFramework="@(_RestoreSettingsPerFramework)" | |
RestorePackagesPathOverride="$(_RestorePackagesPathOverride)" | |
RestoreRepositoryPathOverride="$(_RestoreRepositoryPathOverride)" | |
RestoreSourcesOverride="$(_RestoreSourcesOverride)" | |
RestoreFallbackFoldersOverride="$(_RestoreFallbackFoldersOverride)" | |
RestoreProjectStyle="$(RestoreProjectStyle)" | |
MSBuildStartupDirectory="$(MSBuildStartupDirectory)"> | |
<Output | |
TaskParameter="OutputSources" | |
PropertyName="_OutputSources" /> | |
<Output | |
TaskParameter="OutputPackagesPath" | |
PropertyName="_OutputPackagesPath" /> | |
<Output | |
TaskParameter="OutputRepositoryPath" | |
PropertyName="_OutputRepositoryPath" /> | |
<Output | |
TaskParameter="OutputFallbackFolders" | |
PropertyName="_OutputFallbackFolders" /> | |
<Output | |
TaskParameter="OutputConfigFilePaths" | |
PropertyName="_OutputConfigFilePaths" /> | |
</GetRestoreSettingsTask> | |
</Target> | |
<!-- | |
============================================================ | |
_GetRestoreSettingsCurrentProject | |
Generate items for a single framework. | |
============================================================ | |
--> | |
<Target Name="_GetRestoreSettingsCurrentProject" | |
Condition=" '$(TargetFrameworks)' == '' AND '$(PackageReferenceCompatibleProjectStyle)' == 'true' " | |
DependsOnTargets="_GetRestoreSettingsPerFramework" | |
Returns="@(_RestoreSettingsPerFramework)"> | |
</Target> | |
<!-- | |
============================================================ | |
_GetRestoreSettingsAllFrameworks | |
Generate items for all frameworks. | |
============================================================ | |
--> | |
<Target Name="_GetRestoreSettingsAllFrameworks" | |
Condition=" '$(TargetFrameworks)' != '' AND '$(PackageReferenceCompatibleProjectStyle)' == 'true' " | |
DependsOnTargets="_GetRestoreTargetFrameworksAsItems;_GetRestoreProjectStyle" | |
Returns="@(_RestoreSettingsPerFramework)"> | |
<!-- Read additional sources and fallback folders for each framework --> | |
<MSBuild | |
BuildInParallel="$(RestoreBuildInParallel)" | |
Projects="$(MSBuildProjectFullPath)" | |
Targets="_GetRestoreSettingsPerFramework" | |
Properties="TargetFramework=%(_RestoreTargetFrameworkItems.Identity); | |
$(_GenerateRestoreGraphProjectEntryInputProperties)"> | |
<Output | |
TaskParameter="TargetOutputs" | |
ItemName="_RestoreSettingsPerFramework" /> | |
</MSBuild> | |
</Target> | |
<!-- | |
============================================================ | |
_GetRestoreSettingsPerFramework | |
Generate items with framework specific settings. | |
============================================================ | |
--> | |
<Target Name="_GetRestoreSettingsPerFramework" | |
Returns="@(_RestoreSettingsPerFramework)"> | |
<ItemGroup> | |
<_RestoreSettingsPerFramework Include="$([System.Guid]::NewGuid())"> | |
<RestoreAdditionalProjectSources>$(RestoreAdditionalProjectSources)</RestoreAdditionalProjectSources> | |
<RestoreAdditionalProjectFallbackFolders>$(RestoreAdditionalProjectFallbackFolders)</RestoreAdditionalProjectFallbackFolders> | |
<RestoreAdditionalProjectFallbackFoldersExcludes>$(RestoreAdditionalProjectFallbackFoldersExcludes)</RestoreAdditionalProjectFallbackFoldersExcludes> | |
</_RestoreSettingsPerFramework> | |
</ItemGroup> | |
</Target> | |
<!-- | |
============================================================ | |
_GenerateRestoreProjectSpec | |
Generate a restore project spec for the current project. | |
============================================================ | |
--> | |
<Target Name="_GenerateRestoreProjectSpec" | |
DependsOnTargets="_GetRestoreProjectStyle;_GetRestoreTargetFrameworksOutput;_GetRestoreSettings" | |
Returns="@(_RestoreGraphEntry)"> | |
<!-- Determine the restore output path --> | |
<PropertyGroup Condition=" '$(PackageReferenceCompatibleProjectStyle)' == 'true' OR '$(RestoreProjectStyle)' == 'ProjectJson' "> | |
<RestoreOutputPath Condition=" '$(RestoreOutputPath)' == '' ">$(MSBuildProjectExtensionsPath)</RestoreOutputPath> | |
</PropertyGroup> | |
<ConvertToAbsolutePath Paths="$(RestoreOutputPath)" Condition=" '$(PackageReferenceCompatibleProjectStyle)' == 'true' OR '$(RestoreProjectStyle)' == 'ProjectJson'"> | |
<Output TaskParameter="AbsolutePaths" PropertyName="RestoreOutputAbsolutePath" /> | |
</ConvertToAbsolutePath> | |
<!-- | |
Determine project name for the assets file. | |
Highest priority: PackageId | |
If PackageId does not exist use: AssemblyName | |
If AssemblyName does not exist fallback to the project file name without the extension: $(MSBuildProjectName) | |
For non-PackageReference projects use only: $(MSBuildProjectName) | |
--> | |
<PropertyGroup> | |
<_RestoreProjectName>$(MSBuildProjectName)</_RestoreProjectName> | |
<_RestoreProjectName Condition=" '$(PackageReferenceCompatibleProjectStyle)' == 'true' AND '$(AssemblyName)' != '' ">$(AssemblyName)</_RestoreProjectName> | |
<_RestoreProjectName Condition=" '$(PackageReferenceCompatibleProjectStyle)' == 'true' AND '$(PackageId)' != '' ">$(PackageId)</_RestoreProjectName> | |
</PropertyGroup> | |
<!-- | |
Determine project version for .NETCore projects | |
Default to 1.0.0 | |
Use Version if it exists | |
Override with PackageVersion if it exists (same as pack) | |
--> | |
<PropertyGroup Condition=" '$(PackageReferenceCompatibleProjectStyle)' == 'true' "> | |
<_RestoreProjectVersion>1.0.0</_RestoreProjectVersion> | |
<_RestoreProjectVersion Condition=" '$(Version)' != '' ">$(Version)</_RestoreProjectVersion> | |
<_RestoreProjectVersion Condition=" '$(PackageVersion)' != '' ">$(PackageVersion)</_RestoreProjectVersion> | |
</PropertyGroup> | |
<!-- Determine if this will use cross targeting --> | |
<PropertyGroup Condition=" '$(PackageReferenceCompatibleProjectStyle)' == 'true' AND '$(TargetFrameworks)' != '' "> | |
<_RestoreCrossTargeting>true</_RestoreCrossTargeting> | |
</PropertyGroup> | |
<!-- Determine if ContentFiles should be written by NuGet --> | |
<PropertyGroup Condition=" '$(PackageReferenceCompatibleProjectStyle)' == 'true' AND '$(_RestoreSkipContentFileWrite)' == '' "> | |
<_RestoreSkipContentFileWrite Condition=" '$(TargetFrameworks)' == '' AND '$(TargetFramework)' == '' ">true</_RestoreSkipContentFileWrite> | |
</PropertyGroup> | |
<!-- Write properties for the top level entry point --> | |
<ItemGroup Condition=" '$(PackageReferenceCompatibleProjectStyle)' == 'true' "> | |
<_RestoreGraphEntry Include="$([System.Guid]::NewGuid())"> | |
<Type>ProjectSpec</Type> | |
<Version>$(_RestoreProjectVersion)</Version> | |
<ProjectUniqueName>$(MSBuildProjectFullPath)</ProjectUniqueName> | |
<ProjectPath>$(MSBuildProjectFullPath)</ProjectPath> | |
<ProjectName>$(_RestoreProjectName)</ProjectName> | |
<Sources>$(_OutputSources)</Sources> | |
<FallbackFolders>$(_OutputFallbackFolders)</FallbackFolders> | |
<PackagesPath>$(_OutputPackagesPath)</PackagesPath> | |
<ProjectStyle>$(RestoreProjectStyle)</ProjectStyle> | |
<OutputPath>$(RestoreOutputAbsolutePath)</OutputPath> | |
<RuntimeIdentifiers>$(RuntimeIdentifiers);$(RuntimeIdentifier)</RuntimeIdentifiers> | |
<RuntimeSupports>$(RuntimeSupports)</RuntimeSupports> | |
<CrossTargeting>$(_RestoreCrossTargeting)</CrossTargeting> | |
<RestoreLegacyPackagesDirectory>$(RestoreLegacyPackagesDirectory)</RestoreLegacyPackagesDirectory> | |
<ValidateRuntimeAssets>$(ValidateRuntimeIdentifierCompatibility)</ValidateRuntimeAssets> | |
<SkipContentFileWrite>$(_RestoreSkipContentFileWrite)</SkipContentFileWrite> | |
<ConfigFilePaths>$(_OutputConfigFilePaths)</ConfigFilePaths> | |
<TreatWarningsAsErrors>$(TreatWarningsAsErrors)</TreatWarningsAsErrors> | |
<WarningsAsErrors>$(WarningsAsErrors)</WarningsAsErrors> | |
<WarningsNotAsErrors>$(WarningsNotAsErrors)</WarningsNotAsErrors> | |
<NoWarn>$(NoWarn)</NoWarn> | |
<RestorePackagesWithLockFile>$(RestorePackagesWithLockFile)</RestorePackagesWithLockFile> | |
<NuGetLockFilePath>$(NuGetLockFilePath)</NuGetLockFilePath> | |
<RestoreLockedMode>$(RestoreLockedMode)</RestoreLockedMode> | |
<_CentralPackageVersionsEnabled>$(_CentralPackageVersionsEnabled)</_CentralPackageVersionsEnabled> | |
<CentralPackageFloatingVersionsEnabled>$(CentralPackageFloatingVersionsEnabled)</CentralPackageFloatingVersionsEnabled> | |
<CentralPackageVersionOverrideEnabled>$(CentralPackageVersionOverrideEnabled)</CentralPackageVersionOverrideEnabled> | |
<CentralPackageTransitivePinningEnabled>$(CentralPackageTransitivePinningEnabled)</CentralPackageTransitivePinningEnabled> | |
<NuGetAudit>$(NuGetAudit)</NuGetAudit> | |
<NuGetAuditLevel>$(NuGetAuditLevel)</NuGetAuditLevel> | |
<NuGetAuditMode>$(NuGetAuditMode)</NuGetAuditMode> | |
</_RestoreGraphEntry> | |
</ItemGroup> | |
<!-- Use project.json --> | |
<ItemGroup Condition=" '$(RestoreProjectStyle)' == 'ProjectJson' "> | |
<_RestoreGraphEntry Include="$([System.Guid]::NewGuid())"> | |
<Type>ProjectSpec</Type> | |
<ProjectUniqueName>$(MSBuildProjectFullPath)</ProjectUniqueName> | |
<ProjectPath>$(MSBuildProjectFullPath)</ProjectPath> | |
<ProjectName>$(_RestoreProjectName)</ProjectName> | |
<Sources>$(_OutputSources)</Sources> | |
<OutputPath>$(RestoreOutputAbsolutePath)</OutputPath> | |
<FallbackFolders>$(_OutputFallbackFolders)</FallbackFolders> | |
<PackagesPath>$(_OutputPackagesPath)</PackagesPath> | |
<ProjectJsonPath>$(_CurrentProjectJsonPath)</ProjectJsonPath> | |
<ProjectStyle>$(RestoreProjectStyle)</ProjectStyle> | |
<ConfigFilePaths>$(_OutputConfigFilePaths)</ConfigFilePaths> | |
</_RestoreGraphEntry> | |
</ItemGroup> | |
<!-- Use packages.config --> | |
<ItemGroup Condition=" '$(RestoreProjectStyle)' == 'PackagesConfig' "> | |
<_RestoreGraphEntry Include="$([System.Guid]::NewGuid())"> | |
<Type>ProjectSpec</Type> | |
<ProjectUniqueName>$(MSBuildProjectFullPath)</ProjectUniqueName> | |
<ProjectPath>$(MSBuildProjectFullPath)</ProjectPath> | |
<ProjectName>$(_RestoreProjectName)</ProjectName> | |
<ProjectStyle>$(RestoreProjectStyle)</ProjectStyle> | |
<PackagesConfigPath Condition="Exists('$(MSBuildProjectDirectory)\packages.$(MSBuildProjectName).config')">$(MSBuildProjectDirectory)\packages.$(MSBuildProjectName).config</PackagesConfigPath> | |
<PackagesConfigPath Condition="Exists('$(MSBuildProjectDirectory)\packages.config')">$(MSBuildProjectDirectory)\packages.config</PackagesConfigPath> | |
<RestorePackagesWithLockFile>$(RestorePackagesWithLockFile)</RestorePackagesWithLockFile> | |
<NuGetLockFilePath>$(NuGetLockFilePath)</NuGetLockFilePath> | |
<RestoreLockedMode>$(RestoreLockedMode)</RestoreLockedMode> | |
<Sources>$(_OutputSources)</Sources> | |
<SolutionDir>$(SolutionDir)</SolutionDir> | |
<RepositoryPath>$(_OutputRepositoryPath)</RepositoryPath> | |
<ConfigFilePaths>$(_OutputConfigFilePaths)</ConfigFilePaths> | |
<PackagesPath>$(_OutputPackagesPath)</PackagesPath> | |
<TargetFrameworks>@(_RestoreTargetFrameworksOutputFiltered)</TargetFrameworks> | |
<NuGetAudit>$(NuGetAudit)</NuGetAudit> | |
<NuGetAuditLevel>$(NuGetAuditLevel)</NuGetAuditLevel> | |
</_RestoreGraphEntry> | |
</ItemGroup> | |
<!-- Non-NuGet type --> | |
<ItemGroup Condition=" '$(RestoreProjectStyle)' == 'Unknown' "> | |
<_RestoreGraphEntry Include="$([System.Guid]::NewGuid())"> | |
<Type>ProjectSpec</Type> | |
<ProjectUniqueName>$(MSBuildProjectFullPath)</ProjectUniqueName> | |
<ProjectPath>$(MSBuildProjectFullPath)</ProjectPath> | |
<ProjectName>$(_RestoreProjectName)</ProjectName> | |
<ProjectStyle>$(RestoreProjectStyle)</ProjectStyle> | |
<TargetFrameworks>@(_RestoreTargetFrameworksOutputFiltered)</TargetFrameworks> | |
</_RestoreGraphEntry> | |
</ItemGroup> | |
</Target> | |
<!-- | |
============================================================ | |
_GenerateProjectRestoreGraph | |
Recursively walk project to project references. | |
============================================================ | |
--> | |
<Target Name="_GenerateProjectRestoreGraph" | |
DependsOnTargets=" | |
_GetRestoreProjectStyle; | |
_GenerateRestoreProjectSpec; | |
_GenerateRestoreDependencies" | |
Returns="@(_RestoreGraphEntry)"> | |
<!-- Output from dependency targets --> | |
</Target> | |
<!-- | |
============================================================ | |
_GenerateRestoreDependencies | |
Generate items for package and project references. | |
============================================================ | |
--> | |
<Target Name="_GenerateRestoreDependencies" | |
DependsOnTargets="_GenerateProjectRestoreGraphAllFrameworks;_GenerateProjectRestoreGraphCurrentProject" | |
Returns="@(_RestoreGraphEntry)"> | |
</Target> | |
<!-- | |
============================================================ | |
_GenerateProjectRestoreGraphAllFrameworks | |
Walk dependencies for all frameworks. | |
============================================================ | |
--> | |
<Target Name="_GenerateProjectRestoreGraphAllFrameworks" | |
Condition=" '$(TargetFrameworks)' != '' " | |
DependsOnTargets="_GetRestoreTargetFrameworksAsItems" | |
Returns="@(_RestoreGraphEntry)"> | |
<!-- Get project and package references --> | |
<!-- Evaluate for each framework --> | |
<MSBuild | |
BuildInParallel="$(RestoreBuildInParallel)" | |
Projects="$(MSBuildProjectFullPath)" | |
Targets="_GenerateProjectRestoreGraphPerFramework" | |
Properties="TargetFramework=%(_RestoreTargetFrameworkItems.Identity); | |
$(_GenerateRestoreGraphProjectEntryInputProperties)"> | |
<Output | |
TaskParameter="TargetOutputs" | |
ItemName="_RestoreGraphEntry" /> | |
</MSBuild> | |
</Target> | |
<!-- | |
============================================================ | |
_GenerateProjectRestoreGraphCurrentProject | |
Walk dependencies with the current framework. | |
============================================================ | |
--> | |
<Target Name="_GenerateProjectRestoreGraphCurrentProject" | |
Condition=" '$(TargetFrameworks)' == '' " | |
DependsOnTargets="_GenerateProjectRestoreGraphPerFramework" | |
Returns="@(_RestoreGraphEntry)"> | |
</Target> | |
<!-- | |
============================================================ | |
_GenerateProjectRestoreGraphPerFramework | |
Walk dependencies using $(TargetFramework) | |
============================================================ | |
--> | |
<Target Name="_GenerateProjectRestoreGraphPerFramework" | |
DependsOnTargets="_GetRestoreProjectStyle;_CollectRestoreInputs" | |
Returns="@(_RestoreGraphEntry)"> | |
<!-- Write out project references --> | |
<GetRestoreProjectReferencesTask | |
ProjectUniqueName="$(MSBuildProjectFullPath)" | |
ProjectReferences="@(ProjectReference)" | |
TargetFrameworks="$(TargetFramework)" | |
ParentProjectPath="$(MSBuildProjectFullPath)"> | |
<Output | |
TaskParameter="RestoreGraphItems" | |
ItemName="_RestoreGraphEntry" /> | |
</GetRestoreProjectReferencesTask> | |
<!-- Write out package references--> | |
<GetRestorePackageReferencesTask | |
Condition=" '$(PackageReferenceCompatibleProjectStyle)' == 'true' " | |
ProjectUniqueName="$(MSBuildProjectFullPath)" | |
PackageReferences="@(PackageReference)" | |
TargetFrameworks="$(TargetFramework)" | |
> | |
<Output | |
TaskParameter="RestoreGraphItems" | |
ItemName="_RestoreGraphEntry" /> | |
</GetRestorePackageReferencesTask> | |
<!-- Write out central package versions --> | |
<GetCentralPackageVersionsTask | |
Condition=" '$(PackageReferenceCompatibleProjectStyle)' == 'true' AND '$(_CentralPackageVersionsEnabled)' == 'true' " | |
ProjectUniqueName="$(MSBuildProjectFullPath)" | |
CentralPackageVersions="@(PackageVersion)" | |
TargetFrameworks="$(TargetFramework)" | |
> | |
<Output | |
TaskParameter="RestoreGraphItems" | |
ItemName="_RestoreGraphEntry" /> | |
</GetCentralPackageVersionsTask> | |
<!-- Write out package downloads --> | |
<GetRestorePackageDownloadsTask | |
Condition=" '$(PackageReferenceCompatibleProjectStyle)' == 'true' " | |
ProjectUniqueName="$(MSBuildProjectFullPath)" | |
PackageDownloads="@(PackageDownload)" | |
TargetFrameworks="$(TargetFramework)" | |
> | |
<Output | |
TaskParameter="RestoreGraphItems" | |
ItemName="_RestoreGraphEntry" /> | |
</GetRestorePackageDownloadsTask> | |
<!-- Write out Framework References--> | |
<GetRestoreFrameworkReferencesTask | |
Condition=" '$(PackageReferenceCompatibleProjectStyle)' == 'true' " | |
ProjectUniqueName="$(MSBuildProjectFullPath)" | |
FrameworkReferences="@(FrameworkReference)" | |
TargetFrameworks="$(TargetFramework)" | |
> | |
<Output | |
TaskParameter="RestoreGraphItems" | |
ItemName="_RestoreGraphEntry" /> | |
</GetRestoreFrameworkReferencesTask> | |
<!-- Write out advisory suppressions--> | |
<GetRestoreNuGetAuditSuppressionsTask | |
Condition=" '$(PackageReferenceCompatibleProjectStyle)' == 'true' " | |
ProjectUniqueName="$(MSBuildProjectFullPath)" | |
NuGetAuditSuppressions="@(NuGetAuditSuppress)" | |
TargetFrameworks="$(TargetFramework)" | |
> | |
<Output | |
TaskParameter="RestoreGraphItems" | |
ItemName="_RestoreGraphEntry" /> | |
</GetRestoreNuGetAuditSuppressionsTask> | |
<!-- Write out target framework information --> | |
<ItemGroup Condition=" '$(PackageReferenceCompatibleProjectStyle)' == 'true'"> | |
<_RestoreGraphEntry Include="$([System.Guid]::NewGuid())"> | |
<Type>TargetFrameworkInformation</Type> | |
<ProjectUniqueName>$(MSBuildProjectFullPath)</ProjectUniqueName> | |
<PackageTargetFallback>$(PackageTargetFallback)</PackageTargetFallback> | |
<AssetTargetFallback>$(AssetTargetFallback)</AssetTargetFallback> | |
<TargetFramework>$(TargetFramework)</TargetFramework> | |
<TargetFrameworkIdentifier>$(TargetFrameworkIdentifier)</TargetFrameworkIdentifier> | |
<TargetFrameworkVersion>$(TargetFrameworkVersion)</TargetFrameworkVersion> | |
<TargetFrameworkMoniker>$(TargetFrameworkMoniker)</TargetFrameworkMoniker> | |
<TargetFrameworkProfile>$(TargetFrameworkProfile)</TargetFrameworkProfile> | |
<TargetPlatformMoniker>$(TargetPlatformMoniker)</TargetPlatformMoniker> | |
<TargetPlatformIdentifier>$(TargetPlatformIdentifier)</TargetPlatformIdentifier> | |
<TargetPlatformVersion>$(TargetPlatformVersion)</TargetPlatformVersion> | |
<TargetPlatformMinVersion>$(TargetPlatformMinVersion)</TargetPlatformMinVersion> | |
<CLRSupport>$(CLRSupport)</CLRSupport> | |
<RuntimeIdentifierGraphPath>$(RuntimeIdentifierGraphPath)</RuntimeIdentifierGraphPath> | |
<WindowsTargetPlatformMinVersion>$(WindowsTargetPlatformMinVersion)</WindowsTargetPlatformMinVersion> | |
</_RestoreGraphEntry> | |
</ItemGroup> | |
</Target> | |
<!-- | |
============================================================ | |
_GenerateRestoreProjectPathItemsCurrentProject | |
Get absolute paths for all project references. | |
============================================================ | |
--> | |
<Target Name="_GenerateRestoreProjectPathItemsCurrentProject" | |
Condition=" '$(TargetFrameworks)' == '' " | |
DependsOnTargets="_GenerateRestoreProjectPathItemsPerFramework" | |
Returns="@(_RestoreProjectPathItems)"> | |
</Target> | |
<!-- | |
============================================================ | |
_GenerateRestoreProjectPathItemsPerFramework | |
Get absolute paths for all project references. | |
============================================================ | |
--> | |
<Target Name="_GenerateRestoreProjectPathItemsPerFramework" | |
Returns="@(_RestoreProjectPathItems)"> | |
<!-- Get the absolute paths to all projects --> | |
<ConvertToAbsolutePath Paths="@(ProjectReference)"> | |
<Output TaskParameter="AbsolutePaths" PropertyName="_RestoreGraphAbsoluteProjectPaths" /> | |
</ConvertToAbsolutePath> | |
<ItemGroup> | |
<_RestoreProjectPathItems Include="$(_RestoreGraphAbsoluteProjectPaths)" /> | |
</ItemGroup> | |
</Target> | |
<!-- | |
============================================================ | |
_GenerateRestoreProjectPathItems | |
Get all project references regardless of framework | |
============================================================ | |
--> | |
<Target Name="_GenerateRestoreProjectPathItems" | |
DependsOnTargets="_GenerateRestoreProjectPathItemsAllFrameworks;_GenerateRestoreProjectPathItemsCurrentProject" | |
Returns="@(_CurrentRestoreProjectPathItems)"> | |
<!-- Drop any duplicate items --> | |
<RemoveDuplicates | |
Inputs="@(_RestoreProjectPathItems)"> | |
<Output | |
TaskParameter="Filtered" | |
ItemName="_CurrentRestoreProjectPathItems" /> | |
</RemoveDuplicates> | |
</Target> | |
<!-- | |
============================================================ | |
_GenerateRestoreProjectPathItemsAllFrameworks | |
Get all project references regardless of framework | |
============================================================ | |
--> | |
<Target Name="_GenerateRestoreProjectPathItemsAllFrameworks" | |
Condition=" '$(TargetFrameworks)' != '' " | |
DependsOnTargets="_GetRestoreTargetFrameworksAsItems" | |
Returns="@(_RestoreProjectPathItems)"> | |
<!-- Get all project references for the current project --> | |
<!-- With SkipNonexistentTargets support --> | |
<MSBuild | |
Condition=" '$(RestoreUseSkipNonexistentTargets)' == 'true' " | |
BuildInParallel="$(RestoreBuildInParallel)" | |
Projects="$(MSBuildProjectFullPath)" | |
Targets="_GenerateRestoreProjectPathItemsPerFramework" | |
SkipNonexistentTargets="true" | |
SkipNonexistentProjects="true" | |
Properties="TargetFramework=%(_RestoreTargetFrameworkItems.Identity); | |
$(_GenerateRestoreGraphProjectEntryInputProperties)"> | |
<Output | |
TaskParameter="TargetOutputs" | |
ItemName="_RestoreProjectPathItems" /> | |
</MSBuild> | |
<!-- Without SkipNonexistentTargets support --> | |
<MSBuild | |
Condition=" '$(RestoreUseSkipNonexistentTargets)' != 'true' " | |
Projects="$(MSBuildProjectFullPath)" | |
Targets="_GenerateRestoreProjectPathItemsPerFramework" | |
ContinueOnError="$(RestoreContinueOnError)" | |
Properties="TargetFramework=%(_RestoreTargetFrameworkItems.Identity); | |
$(_GenerateRestoreGraphProjectEntryInputProperties)"> | |
<Output | |
TaskParameter="TargetOutputs" | |
ItemName="_RestoreProjectPathItems" /> | |
</MSBuild> | |
</Target> | |
<!-- | |
============================================================ | |
_GenerateRestoreProjectPathWalk | |
Recursively walk projects | |
============================================================ | |
--> | |
<Target Name="_GenerateRestoreProjectPathWalk" | |
DependsOnTargets="_GenerateRestoreProjectPathItems" | |
Returns="@(_RestoreProjectPathItems)"> | |
<!-- Walk project references --> | |
<!-- With SkipNonexistentTargets --> | |
<MSBuild | |
Condition=" '$(RestoreUseSkipNonexistentTargets)' == 'true' " | |
BuildInParallel="$(RestoreBuildInParallel)" | |
Projects="@(_CurrentRestoreProjectPathItems)" | |
Targets="_GenerateRestoreProjectPathWalk" | |
SkipNonexistentTargets="true" | |
SkipNonexistentProjects="true" | |
Properties="$(_GenerateRestoreGraphProjectEntryInputProperties)"> | |
<Output | |
TaskParameter="TargetOutputs" | |
ItemName="_GenerateRestoreProjectPathWalkOutputs" /> | |
</MSBuild> | |
<!-- Without SkipNonexistentTargets --> | |
<MSBuild | |
Condition=" '$(RestoreUseSkipNonexistentTargets)' != 'true' " | |
Projects="@(_CurrentRestoreProjectPathItems)" | |
Targets="_GenerateRestoreProjectPathWalk" | |
ContinueOnError="$(RestoreContinueOnError)" | |
Properties="$(_GenerateRestoreGraphProjectEntryInputProperties)"> | |
<Output | |
TaskParameter="TargetOutputs" | |
ItemName="_GenerateRestoreProjectPathWalkOutputs" /> | |
</MSBuild> | |
<!-- Include the current project in the result --> | |
<ItemGroup> | |
<_GenerateRestoreProjectPathWalkOutputs Include="$(MSBuildProjectFullPath)" /> | |
</ItemGroup> | |
<!-- Remove duplicates --> | |
<RemoveDuplicates | |
Inputs="@(_GenerateRestoreProjectPathWalkOutputs)"> | |
<Output | |
TaskParameter="Filtered" | |
ItemName="_RestoreProjectPathItems" /> | |
</RemoveDuplicates> | |
</Target> | |
<!-- | |
============================================================ | |
_GetAllRestoreProjectPathItems | |
Get the full list of known projects. | |
This includes all child projects from all target frameworks. | |
============================================================ | |
--> | |
<Target Name="_GetAllRestoreProjectPathItems" | |
DependsOnTargets="_FilterRestoreGraphProjectInputItems" | |
Returns="@(_RestoreProjectPathItems)"> | |
<NuGetMessageTask Name="DeterminingProjectsToRestore" Importance="High" /> | |
<!-- Walk projects --> | |
<!-- With SkipNonexistentTargets --> | |
<MSBuild | |
Condition=" '$(RestoreUseSkipNonexistentTargets)' == 'true' " | |
BuildInParallel="$(RestoreBuildInParallel)" | |
Projects="@(FilteredRestoreGraphProjectInputItems)" | |
Targets="_GenerateRestoreProjectPathWalk" | |
SkipNonexistentTargets="true" | |
SkipNonexistentProjects="true" | |
Properties="$(_GenerateRestoreGraphProjectEntryInputProperties)"> | |
<Output | |
TaskParameter="TargetOutputs" | |
ItemName="_RestoreProjectPathItemsOutputs" /> | |
</MSBuild> | |
<!-- Without SkipNonexistentTargets --> | |
<MSBuild | |
Condition=" '$(RestoreUseSkipNonexistentTargets)' != 'true' " | |
Projects="@(FilteredRestoreGraphProjectInputItems)" | |
Targets="_GenerateRestoreProjectPathWalk" | |
ContinueOnError="$(RestoreContinueOnError)" | |
Properties="$(_GenerateRestoreGraphProjectEntryInputProperties)"> | |
<Output | |
TaskParameter="TargetOutputs" | |
ItemName="_RestoreProjectPathItemsOutputs" /> | |
</MSBuild> | |
<!-- Remove duplicates --> | |
<RemoveDuplicates | |
Inputs="@(_RestoreProjectPathItemsOutputs)"> | |
<Output | |
TaskParameter="Filtered" | |
ItemName="_RestoreProjectPathItemsWithoutDupes" /> | |
</RemoveDuplicates> | |
<!-- Remove projects that do not support restore. --> | |
<!-- With SkipNonexistentTargets --> | |
<MSBuild | |
Condition=" '$(RestoreUseSkipNonexistentTargets)' == 'true' " | |
BuildInParallel="$(RestoreBuildInParallel)" | |
Projects="@(_RestoreProjectPathItemsWithoutDupes)" | |
Targets="_IsProjectRestoreSupported" | |
SkipNonexistentTargets="true" | |
SkipNonexistentProjects="true" | |
Properties="$(_GenerateRestoreGraphProjectEntryInputProperties)"> | |
<Output | |
TaskParameter="TargetOutputs" | |
ItemName="_RestoreProjectPathItems" /> | |
</MSBuild> | |
<!-- Without SkipNonexistentTargets --> | |
<MSBuild | |
Condition=" '$(RestoreUseSkipNonexistentTargets)' != 'true' " | |
Projects="@(_RestoreProjectPathItemsWithoutDupes)" | |
Targets="_IsProjectRestoreSupported" | |
ContinueOnError="$(RestoreContinueOnError)" | |
Properties="$(_GenerateRestoreGraphProjectEntryInputProperties)"> | |
<Output | |
TaskParameter="TargetOutputs" | |
ItemName="_RestoreProjectPathItems" /> | |
</MSBuild> | |
</Target> | |
<!-- | |
============================================================ | |
_GetRestoreSettingsOverrides | |
Get global property overrides that should be resolved | |
against the current working directory instead of the project. | |
This is done by calling into NuGet.targets in a new scope, | |
project properties will not be returned by the calls below. | |
============================================================ | |
--> | |
<Target Name="_GetRestoreSettingsOverrides" | |
Returns="$(_RestorePackagesPathOverride);$(_RestoreRepositoryPathOverride);$(_RestoreSourcesOverride);$(_RestoreFallbackFoldersOverride)"> | |
<!-- RestorePackagesPathOverride --> | |
<MSBuild | |
BuildInParallel="$(RestoreBuildInParallel)" | |
Condition=" '$(RestorePackagesPath)' != '' " | |
Projects="$(MSBuildThisFileFullPath)" | |
Targets="_GetRestorePackagesPathOverride"> | |
<Output | |
TaskParameter="TargetOutputs" | |
PropertyName="_RestorePackagesPathOverride" /> | |
</MSBuild> | |
<!-- RestoreRepositoryPathOverride --> | |
<MSBuild | |
BuildInParallel="$(RestoreBuildInParallel)" | |
Condition=" '$(RestoreRepositoryPathOverride)' != '' " | |
Projects="$(MSBuildThisFileFullPath)" | |
Targets="_GetRestoreRepositoryPathOverride"> | |
<Output | |
TaskParameter="TargetOutputs" | |
PropertyName="_RestoreRepositoryPathOverride" /> | |
</MSBuild> | |
<!-- RestoreSourcesOverride --> | |
<MSBuild | |
BuildInParallel="$(RestoreBuildInParallel)" | |
Condition=" '$(RestoreSources)' != '' " | |
Projects="$(MSBuildThisFileFullPath)" | |
Targets="_GetRestoreSourcesOverride"> | |
<Output | |
TaskParameter="TargetOutputs" | |
PropertyName="_RestoreSourcesOverride" /> | |
</MSBuild> | |
<!-- RestoreFallbackFoldersOverride --> | |
<MSBuild | |
BuildInParallel="$(RestoreBuildInParallel)" | |
Condition=" '$(RestoreFallbackFolders)' != '' " | |
Projects="$(MSBuildThisFileFullPath)" | |
Targets="_GetRestoreFallbackFoldersOverride"> | |
<Output | |
TaskParameter="TargetOutputs" | |
PropertyName="_RestoreFallbackFoldersOverride" /> | |
</MSBuild> | |
</Target> | |
<!-- | |
============================================================ | |
_GetRestorePackagesPathOverride | |
============================================================ | |
--> | |
<Target Name="_GetRestorePackagesPathOverride" | |
Returns="$(_RestorePackagesPathOverride)"> | |
<PropertyGroup> | |
<_RestorePackagesPathOverride>$(RestorePackagesPath)</_RestorePackagesPathOverride> | |
</PropertyGroup> | |
</Target> | |
<!-- | |
============================================================ | |
_GetRestoreRepositoryPathOverride | |
============================================================ | |
--> | |
<Target Name="_GetRestoreRepositoryPathOverride" | |
Returns="$(_RestoreRepositoryPathOverride)"> | |
<PropertyGroup> | |
<_RestorePackagesPathOverride>$(RestoreRepositoryPath)</_RestorePackagesPathOverride> | |
</PropertyGroup> | |
</Target> | |
<!-- | |
============================================================ | |
_GetRestoreSourcesOverride | |
============================================================ | |
--> | |
<Target Name="_GetRestoreSourcesOverride" | |
Returns="$(_RestoreSourcesOverride)"> | |
<PropertyGroup> | |
<_RestoreSourcesOverride>$(RestoreSources)</_RestoreSourcesOverride> | |
</PropertyGroup> | |
</Target> | |
<!-- | |
============================================================ | |
_GetRestoreFallbackFoldersOverride | |
============================================================ | |
--> | |
<Target Name="_GetRestoreFallbackFoldersOverride" | |
Returns="$(_RestoreFallbackFoldersOverride)"> | |
<PropertyGroup> | |
<_RestoreFallbackFoldersOverride>$(RestoreFallbackFolders)</_RestoreFallbackFoldersOverride> | |
</PropertyGroup> | |
</Target> | |
<!-- | |
============================================================ | |
_GetRestoreTargetFrameworkOverride | |
============================================================ | |
--> | |
<Target Name="_GetRestoreTargetFrameworkOverride" | |
Condition=" '$(_DisableNuGetRestoreTargetFrameworksOverride)' != 'true' " | |
Returns="$(_TargetFrameworkOverride)"> | |
<GetGlobalPropertyValueTask | |
PropertyName="TargetFramework" | |
Condition=" '$(TargetFrameworks)' != '' "> | |
<Output TaskParameter="GlobalPropertyValue" PropertyName="_TargetFrameworkOverride" /> | |
</GetGlobalPropertyValueTask> | |
<!-- Only set the override if TargetFrameworks has not been overriden as well. In that case, prefer it. --> | |
</Target> | |
<!-- | |
============================================================ | |
_GetTargetFrameworkOverrides | |
============================================================ | |
--> | |
<Target Name="_GetTargetFrameworkOverrides" | |
Returns="$(_TargetFrameworkOverride)"> | |
<PropertyGroup> | |
<_TargetFrameworkOverride Condition=" '$(TargetFrameworks)' == '' ">$(TargetFramework)</_TargetFrameworkOverride> | |
</PropertyGroup> | |
</Target> | |
<!-- | |
============================================================ | |
_IsProjectRestoreSupported | |
Verify restore targets exist in the project. | |
============================================================ | |
--> | |
<Target Name="_IsProjectRestoreSupported" | |
Returns="@(_ValidProjectsForRestore)"> | |
<ItemGroup> | |
<_ValidProjectsForRestore Include="$(MSBuildProjectFullPath)" /> | |
</ItemGroup> | |
</Target> | |
<!-- | |
============================================================ | |
Import NuGet.RestoreEx.targets if the MSBuild property 'RestoreEnableStaticGraph' | |
is 'true'. This file overrides the Restore target to use MSBuild Static Graph | |
to load and evaluate projects which is much faster. | |
This feature is not supported for NuGet.exe scenarios and NuGet.RestoreEx.targets | |
won't exist in that case. | |
============================================================ | |
--> | |
<Import Project="NuGet.RestoreEx.targets" Condition="'$(RestoreUseStaticGraphEvaluation)' == 'true' And Exists('NuGet.RestoreEx.targets')" /> | |
</Project> | |