1313 lines
		
	
	
		
			59 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
		
			
		
	
	
			1313 lines
		
	
	
		
			59 KiB
		
	
	
	
		
			Plaintext
		
	
	
| 
								 | 
							
								<!--
							 | 
						||
| 
								 | 
							
								***********************************************************************************************
							 | 
						||
| 
								 | 
							
								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>
							 | 
						||
| 
								 | 
							
								    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
							 | 
						||
| 
								 | 
							
								    <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>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <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>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <!-- 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.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)" />
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <!--
							 | 
						||
| 
								 | 
							
								    ============================================================
							 | 
						||
| 
								 | 
							
								    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)"
							 | 
						||
| 
								 | 
							
								      RestoreIgnoreFailedSources="$(RestoreIgnoreFailedSources)"
							 | 
						||
| 
								 | 
							
								      RestoreRecursive="$(RestoreRecursive)"
							 | 
						||
| 
								 | 
							
								      RestoreForce="$(RestoreForce)"
							 | 
						||
| 
								 | 
							
								      HideWarningsAndErrors="$(HideWarningsAndErrors)"
							 | 
						||
| 
								 | 
							
								      Interactive="$(NuGetInteractive)"
							 | 
						||
| 
								 | 
							
								      RestoreForceEvaluate="$(RestoreForceEvaluate)"
							 | 
						||
| 
								 | 
							
								      RestorePackagesConfig="$(RestorePackagesConfig)"/>
							 | 
						||
| 
								 | 
							
								  </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)" />
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <!--
							 | 
						||
| 
								 | 
							
								    ============================================================
							 | 
						||
| 
								 | 
							
								    CollectCentralPackageVersions
							 | 
						||
| 
								 | 
							
								    Gathers all PackageVersion items from the central package versions file.
							 | 
						||
| 
								 | 
							
								    ============================================================
							 | 
						||
| 
								 | 
							
								  -->
							 | 
						||
| 
								 | 
							
								  <Target Name="CollectCentralPackageVersions" Returns="@(PackageVersion)" />
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <!--
							 | 
						||
| 
								 | 
							
								    ============================================================
							 | 
						||
| 
								 | 
							
								    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)" />
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <!--
							 | 
						||
| 
								 | 
							
								    ============================================================
							 | 
						||
| 
								 | 
							
								    CollectFrameworkReferences
							 | 
						||
| 
								 | 
							
								    ============================================================
							 | 
						||
| 
								 | 
							
								  -->
							 | 
						||
| 
								 | 
							
								  <Target Name="CollectFrameworkReferences" Returns="@(_FrameworkReferenceForRestore)">
							 | 
						||
| 
								 | 
							
								      <ItemGroup>
							 | 
						||
| 
								 | 
							
								          <_FrameworkReferenceForRestore 
							 | 
						||
| 
								 | 
							
								            Include="@(FrameworkReference)"
							 | 
						||
| 
								 | 
							
								            Condition="'%(FrameworkReference.IsTransitiveFrameworkReference)' != 'true'"/>
							 | 
						||
| 
								 | 
							
								      </ItemGroup>
							 | 
						||
| 
								 | 
							
								  </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)' != '' " />
							 | 
						||
| 
								 | 
							
								    </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"
							 | 
						||
| 
								 | 
							
								    Returns="@(_RestoreTargetFrameworksOutputFiltered)">
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    <PropertyGroup>
							 | 
						||
| 
								 | 
							
								      <_RestoreProjectFramework/>
							 | 
						||
| 
								 | 
							
								    </PropertyGroup>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    <!-- For project.json projects target frameworks will be read from project.json. -->
							 | 
						||
| 
								 | 
							
								    <GetProjectTargetFrameworksTask
							 | 
						||
| 
								 | 
							
								      Condition=" '$(RestoreProjectStyle)' != 'ProjectJson'"
							 | 
						||
| 
								 | 
							
								      ProjectPath="$(MSBuildProjectFullPath)"
							 | 
						||
| 
								 | 
							
								      TargetFrameworks="$(TargetFrameworks)"
							 | 
						||
| 
								 | 
							
								      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.
							 | 
						||
| 
								 | 
							
								    ============================================================
							 | 
						||
| 
								 | 
							
								  -->
							 | 
						||
| 
								 | 
							
								  <Target Name="_GetRestoreTargetFrameworksAsItems"
							 | 
						||
| 
								 | 
							
								    DependsOnTargets="_GetRestoreProjectStyle"
							 | 
						||
| 
								 | 
							
								    Returns="@(_RestoreTargetFrameworkItems)">
							 | 
						||
| 
								 | 
							
								    <ItemGroup Condition=" '$(TargetFrameworks)' != '' ">
							 | 
						||
| 
								 | 
							
								      <_RestoreTargetFrameworkItems Include="$(TargetFrameworks.Split(';'))" />
							 | 
						||
| 
								 | 
							
								    </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>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <!--
							 | 
						||
| 
								 | 
							
								    ============================================================
							 | 
						||
| 
								 | 
							
								    _GetRestoreSettingsCurrentProject
							 | 
						||
| 
								 | 
							
								    Generate items for a single framework.
							 | 
						||
| 
								 | 
							
								    ============================================================
							 | 
						||
| 
								 | 
							
								  -->
							 | 
						||
| 
								 | 
							
								  <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-NETCore 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>
							 | 
						||
| 
								 | 
							
								        <NoWarn>$(NoWarn)</NoWarn>
							 | 
						||
| 
								 | 
							
								        <RestorePackagesWithLockFile>$(RestorePackagesWithLockFile)</RestorePackagesWithLockFile>
							 | 
						||
| 
								 | 
							
								        <NuGetLockFilePath>$(NuGetLockFilePath)</NuGetLockFilePath>
							 | 
						||
| 
								 | 
							
								        <RestoreLockedMode>$(RestoreLockedMode)</RestoreLockedMode>
							 | 
						||
| 
								 | 
							
								        <_CentralPackageVersionsEnabled>$(_CentralPackageVersionsEnabled)</_CentralPackageVersionsEnabled>
							 | 
						||
| 
								 | 
							
								      </_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>
							 | 
						||
| 
								 | 
							
								        </_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;CollectPackageReferences;CollectPackageDownloads;CollectFrameworkReferences;CollectCentralPackageVersions"
							 | 
						||
| 
								 | 
							
								    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 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>
							 | 
						||
| 
								 | 
							
								        <RuntimeIdentifierGraphPath>$(RuntimeIdentifierGraphPath)</RuntimeIdentifierGraphPath>
							 | 
						||
| 
								 | 
							
								      </_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>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <!--
							 | 
						||
| 
								 | 
							
								    ============================================================
							 | 
						||
| 
								 | 
							
								    _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>
							 |