2 ***********************************************************************************************
3 Microsoft.PackageDependencyResolution.targets
5 WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
6 created a backup copy. Incorrect changes to this file will make it
7 impossible to load or build your projects from the command-line or the IDE.
9 Copyright (c) .NET Foundation. All rights reserved.
10 ***********************************************************************************************
12 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
15 *************************************
17 - That configure the PackageDependency targets
18 *************************************
21 <!-- General Properties -->
23 <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
26 <!-- Project Assets File -->
28 <ProjectAssetsFile Condition="'$(ProjectAssetsFile)' == ''">$(BaseIntermediateOutputPath)/project.assets.json</ProjectAssetsFile>
32 <!-- Ensure $(ProjectAssetsFile) is a full path -->
33 <ProjectAssetsFile Condition="'$([System.IO.Path]::IsPathRooted($(ProjectAssetsFile)))' != 'true'">$([System.IO.Path]::GetFullPath($([System.IO.Path]::Combine('$(MSBuildProjectDirectory)', '$(ProjectAssetsFile)'))))</ProjectAssetsFile>
37 <ResolvePackageDependenciesForBuild Condition="'$(ResolvePackageDependenciesForBuild)' == ''">true</ResolvePackageDependenciesForBuild>
38 <CopyLocalLockFileAssemblies Condition="'$(CopyLocalLockFileAssemblies)' == ''">true</CopyLocalLockFileAssemblies>
40 <ContentPreprocessorOutputDirectory Condition="'$(ContentPreprocessorOutputDirectory)' == ''">$(IntermediateOutputPath)NuGet\</ContentPreprocessorOutputDirectory>
41 <ProduceOnlyPreprocessorFilesInBuildTask Condition="'$(ProduceOnlyPreprocessorFilesInBuildTask)' == ''">true</ProduceOnlyPreprocessorFilesInBuildTask>
43 <UseTargetPlatformAsNuGetTargetMoniker Condition="'$(UseTargetPlatformAsNuGetTargetMoniker)' == '' AND '$(TargetFrameworkMoniker)' == '.NETCore,Version=v5.0'">true</UseTargetPlatformAsNuGetTargetMoniker>
44 <NuGetTargetMoniker Condition="'$(NuGetTargetMoniker)' == '' AND '$(UseTargetPlatformAsNuGetTargetMoniker)' == 'true'">$(TargetPlatformIdentifier),Version=v$([System.Version]::Parse('$(TargetPlatformMinVersion)').ToString(3))</NuGetTargetMoniker>
45 <NuGetTargetMoniker Condition="'$(NuGetTargetMoniker)' == '' AND '$(UseTargetPlatformAsNuGetTargetMoniker)' != 'true'">$(TargetFrameworkMoniker)</NuGetTargetMoniker>
47 <EmitAssetsLogMessages Condition="'$(EmitAssetsLogMessages)' == ''">true</EmitAssetsLogMessages>
50 <!-- Target Moniker + RID-->
51 <PropertyGroup Condition="'$(_NugetTargetMonikerAndRID)' == ''">
52 <_NugetTargetMonikerAndRID Condition="'$(RuntimeIdentifier)' == ''">$(NuGetTargetMoniker)</_NugetTargetMonikerAndRID>
53 <_NugetTargetMonikerAndRID Condition="'$(RuntimeIdentifier)' != ''">$(NuGetTargetMoniker)/$(RuntimeIdentifier)</_NugetTargetMonikerAndRID>
57 *************************************
58 2. EXTERNAL PROPERTIES and ITEMS
59 - Override or add to external targets
60 *************************************
64 <ResolveAssemblyReferencesDependsOn>
65 $(ResolveAssemblyReferencesDependsOn);
66 ResolvePackageDependenciesForBuild;
67 _HandlePackageFileConflicts;
68 </ResolveAssemblyReferencesDependsOn>
70 <PrepareResourcesDependsOn>
71 ResolvePackageDependenciesForBuild;
72 _HandlePackageFileConflicts;
73 $(PrepareResourcesDependsOn)
74 </PrepareResourcesDependsOn>
77 <!-- List of targets that emit Dependency DiagnosticMessages items -->
79 <EmitsDependencyDiagnosticMessages>
80 RunResolvePackageDependencies;
81 $(EmitsDependencyDiagnosticMessages)
82 </EmitsDependencyDiagnosticMessages>
85 <!-- Common tokens used in preprocessed content files -->
87 <PreprocessorValue Include="rootnamespace">
88 <Value>$(RootNamespace)</Value>
90 <PreprocessorValue Include="assemblyname">
91 <Value>$(AssemblyName)</Value>
93 <PreprocessorValue Include="fullpath">
94 <Value>$(MSBuildProjectDirectory)</Value>
96 <PreprocessorValue Include="outputfilename">
97 <Value>$(TargetFileName)</Value>
99 <PreprocessorValue Include="filename">
100 <Value>$(MSBuildProjectFile)</Value>
102 <PreprocessorValue Include="@(NuGetPreprocessorValue)" Exclude="@(PreprocessorValue)" />
106 *************************************
108 - Override the Depends-On properties, or the individual targets
109 *************************************
113 ============================================================
114 ResolvePackageDependenciesForBuild
116 Populate items for build. This is triggered before target
117 "AssignProjectConfiguration" to ensure ProjectReference items
118 are populated before ResolveProjectReferences is run.
119 ============================================================
122 <ResolvePackageDependenciesForBuildDependsOn>
123 ResolveLockFileReferences;
124 ResolveLockFileAnalyzers;
125 ResolveLockFileCopyLocalProjectDeps;
126 IncludeTransitiveProjectReferences
127 </ResolvePackageDependenciesForBuildDependsOn>
129 <Target Name="ResolvePackageDependenciesForBuild"
130 Condition="'$(ResolvePackageDependenciesForBuild)' == 'true' and Exists('$(ProjectAssetsFile)')"
131 BeforeTargets="AssignProjectConfiguration"
132 DependsOnTargets="$(ResolvePackageDependenciesForBuildDependsOn)" />
135 *************************************
136 4. Package Dependency TASK and TARGETS
137 - Raise the lock file to MSBuild Items and create derived items
138 *************************************
142 ============================================================
143 RunResolvePackageDependencies
145 Generate Definitions and Dependencies based on ResolvePackageDependencies task
146 ============================================================
149 <UsingTask TaskName="Microsoft.NET.Build.Tasks.ResolvePackageDependencies"
150 AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" />
151 <UsingTask TaskName="Microsoft.NET.Build.Tasks.CheckForTargetInAssetsFile"
152 AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" />
153 <UsingTask TaskName="Microsoft.NET.Build.Tasks.JoinItems"
154 AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" />
156 <!-- The condition on this target causes it to be skipped during design-time builds if
157 the restore operation hasn't run yet. This is to avoid displaying an error in
158 the Visual Studio error list when a project is created before NuGet restore has
159 run and created the assets file. -->
160 <Target Name="RunResolvePackageDependencies"
161 Condition=" '$(DesignTimeBuild)' != 'true' Or Exists('$(ProjectAssetsFile)')"
162 DependsOnTargets="ReportAssetsLogMessages">
164 <!-- Verify that the assets file has a target for the right framework. Otherwise, if we restored for the
165 wrong framework, we'd end up finding no references to pass to the compiler, and we'd get a ton of
167 <CheckForTargetInAssetsFile
168 AssetsFilePath="$(ProjectAssetsFile)"
169 TargetFrameworkMoniker="$(NuGetTargetMoniker)"
170 RuntimeIdentifier="$(RuntimeIdentifier)" />
172 <ResolvePackageDependencies
173 ProjectPath="$(MSBuildProjectFullPath)"
174 ProjectAssetsFile="$(ProjectAssetsFile)"
175 ProjectLanguage="$(Language)"
176 ContinueOnError="ErrorAndContinue">
178 <Output TaskParameter="TargetDefinitions" ItemName="TargetDefinitions" />
179 <Output TaskParameter="PackageDefinitions" ItemName="PackageDefinitions" />
180 <Output TaskParameter="FileDefinitions" ItemName="FileDefinitions" />
181 <Output TaskParameter="PackageDependencies" ItemName="PackageDependencies" />
182 <Output TaskParameter="FileDependencies" ItemName="FileDependencies" />
183 <Output TaskParameter="DiagnosticMessages" ItemName="DiagnosticMessages" />
184 </ResolvePackageDependencies>
189 ============================================================
190 ResolvePackageDependenciesDesignTime
192 Aggregate the dependencies produced by ResolvePackageDependencies to a form
193 that's consumable by an IDE to display package dependencies.
194 ============================================================
197 <UsingTask TaskName="Microsoft.NET.Build.Tasks.PreprocessPackageDependenciesDesignTime"
198 AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" />
200 <Target Name="ResolvePackageDependenciesDesignTime"
201 Returns="@(_DependenciesDesignTime)"
202 DependsOnTargets="ResolveAssemblyReferencesDesignTime;$(EmitsDependencyDiagnosticMessages)">
204 <PreprocessPackageDependenciesDesignTime
205 TargetDefinitions="@(TargetDefinitions)"
206 PackageDefinitions="@(PackageDefinitions)"
207 FileDefinitions="@(FileDefinitions)"
208 PackageDependencies="@(PackageDependencies)"
209 FileDependencies="@(FileDependencies)"
210 References="@(Reference)"
211 DefaultImplicitPackages="$(DefaultImplicitPackages)"
212 InputDiagnosticMessages="@(DiagnosticMessages)"
213 TargetFrameworkMoniker="$(NuGetTargetMoniker)">
215 <Output TaskParameter="DependenciesDesignTime" ItemName="_DependenciesDesignTime" />
216 </PreprocessPackageDependenciesDesignTime>
220 ============================================================
221 CollectSDKReferencesDesignTime
223 Aggregates the sdk specified as project items and implicit
225 ============================================================
227 <UsingTask TaskName="Microsoft.NET.Build.Tasks.CollectSDKReferencesDesignTime"
228 AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" />
230 <Target Name="CollectSDKReferencesDesignTime"
231 Returns="@(_SDKReference)"
232 DependsOnTargets="CollectPackageReferences">
234 <CollectSDKReferencesDesignTime
235 SdkReferences="@(SdkReference)"
236 PackageReferences="@(PackageReference)"
237 DefaultImplicitPackages="$(DefaultImplicitPackages)">
239 <Output TaskParameter="SDKReferencesDesignTime" ItemName="_SDKReference" />
240 </CollectSDKReferencesDesignTime>
244 ============================================================
245 CollectResolvedSDKReferencesDesignTime
247 Aggregates the sdk specified as project items and implicit
248 packages produced by ResolvePackageDependencies.
249 ============================================================
251 <Target Name="CollectResolvedSDKReferencesDesignTime"
252 Returns="@(_ResolvedSDKReference)"
253 DependsOnTargets="ResolveSDKReferencesDesignTime;CollectPackageReferences">
255 <CollectSDKReferencesDesignTime
256 SdkReferences="@(ResolvedSdkReference)"
257 PackageReferences="@(PackageReference)"
258 DefaultImplicitPackages="$(DefaultImplicitPackages)">
260 <Output TaskParameter="SDKReferencesDesignTime" ItemName="_ResolvedSDKReference" />
261 </CollectSDKReferencesDesignTime>
265 ============================================================
266 RunProduceContentAssets
268 Process content assets by handling preprocessing tokens where necessary, and
269 produce copy local items, content items grouped by "build action" and file writes
270 ============================================================
273 <UsingTask TaskName="Microsoft.NET.Build.Tasks.ProduceContentAssets"
274 AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" />
276 <Target Name="RunProduceContentAssets"
277 Returns="_ContentCopyLocalItems;FileWrites"
278 DependsOnTargets="_ComputeActiveTFMFileDependencies">
280 <_ContentFileDeps Include="@(_ActiveTFMFileDependencies->WithMetadataValue('FileGroup', 'ContentFile'))" />
283 <JoinItems Left="@(_ContentFileDeps)" Right="@(FileDefinitions)" RightMetadata="*">
284 <Output TaskParameter="JoinResult" ItemName="_ContentFileDefs" />
287 <ProduceContentAssets
288 ContentFileDefinitions="@(_ContentFileDefs)"
289 ContentFileDependencies="@(_ContentFileDeps)"
290 ContentPreprocessorValues="@(PreprocessorValue)"
291 ContentPreprocessorOutputDirectory="$(ContentPreprocessorOutputDirectory)"
292 ProduceOnlyPreprocessorFiles="$(ProduceOnlyPreprocessorFilesInBuildTask)"
293 ProjectLanguage="$(Language)">
295 <Output TaskParameter="CopyLocalItems" ItemName="_ContentCopyLocalItems" />
296 <Output TaskParameter="ProcessedContentItems" ItemName="_ProcessedContentItems" />
297 <Output TaskParameter="FileWrites" ItemName="FileWrites" />
298 </ProduceContentAssets>
300 <!-- The items in _ProcessedContentItems need to go into the appropriately-named item group,
301 but the names depend upon the items themselves. Split it apart. -->
302 <CreateItem Include="@(_ProcessedContentItems)" Condition="'@(_ProcessedContentItems)' != ''">
303 <Output TaskParameter="Include" ItemName="%(_ProcessedContentItems.ProcessedItemType)" />
308 ============================================================
309 ReportAssetsLogMessages
311 Report Log Messages in the assets file to MSBuild and raise them as
312 DiagnosticMessage items that can be consumed downstream (e.g. by the
313 dependency node in the solution explorer)
314 ============================================================
317 <UsingTask TaskName="Microsoft.NET.Build.Tasks.ReportAssetsLogMessages"
318 AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" />
320 <!-- The condition on this target causes it to be skipped during design-time builds if
321 the restore operation hasn't run yet. This is to avoid displaying an error in
322 the Visual Studio error list when a project is created before NuGet restore has
323 run and created the assets file. -->
324 <Target Name="ReportAssetsLogMessages"
325 Condition="'$(EmitAssetsLogMessages)' == 'true' And ('$(DesignTimeBuild)' != 'true' Or Exists('$(ProjectAssetsFile)'))">
327 <ReportAssetsLogMessages
328 ProjectAssetsFile="$(ProjectAssetsFile)"
329 ContinueOnError="ErrorAndContinue">
331 <Output TaskParameter="DiagnosticMessages" ItemName="DiagnosticMessages" />
332 </ReportAssetsLogMessages>
337 <EmitsDependencyDiagnosticMessages>
338 ReportAssetsLogMessages;
339 $(EmitsDependencyDiagnosticMessages)
340 </EmitsDependencyDiagnosticMessages>
344 ============================================================
345 HELPERS: Get Package and File Dependencies matching active TFM and RID
346 ============================================================
349 <Target Name="_ComputeActiveTFMPackageDependencies"
350 DependsOnTargets="RunResolvePackageDependencies"
351 Returns="_ActiveTFMPackageDependencies">
353 <_ActiveTFMPackageDependencies Include="@(PackageDependencies->WithMetadataValue('ParentTarget', '$(_NugetTargetMonikerAndRID)'))" />
357 <Target Name="_ComputeActiveTFMFileDependencies"
358 DependsOnTargets="RunResolvePackageDependencies"
359 Returns="_ActiveTFMFileDependencies">
361 <_ActiveTFMFileDependencies Include="@(FileDependencies->WithMetadataValue('ParentTarget', '$(_NugetTargetMonikerAndRID)'))" />
365 <Target Name="_ComputeTFMOnlyFileDependencies"
366 DependsOnTargets="RunResolvePackageDependencies"
367 Returns="_TFMOnlyFileDependencies">
369 <_TFMOnlyFileDependencies Include="@(FileDependencies->WithMetadataValue('ParentTarget', '$(NuGetTargetMoniker)'))" />
374 ============================================================
375 Reference Targets: For populating References based on lock file
376 - _ComputeLockFileReferences
377 - _ComputeLockFileFrameworks
378 - ResolveLockFileReferences
379 ============================================================
382 <Target Name="_ComputeLockFileReferences"
383 DependsOnTargets="_ComputeTFMOnlyFileDependencies"
384 Returns="ResolvedCompileFileDefinitions">
386 <_CompileFileItems Include="@(_TFMOnlyFileDependencies->WithMetadataValue('FileGroup', 'CompileTimeAssembly'))" />
388 <!-- Get corresponding file definitions -->
389 <JoinItems Left="@(_CompileFileItems)" Right="@(FileDefinitions)" RightMetadata="*">
390 <Output TaskParameter="JoinResult" ItemName="_CompileFileDefinitions" />
393 <ResolvedCompileFileDefinitions Include="@(_CompileFileDefinitions->'%(ResolvedPath)')">
394 <Private>false</Private>
395 <NuGetIsFrameworkReference>false</NuGetIsFrameworkReference>
396 <NuGetSourceType>Package</NuGetSourceType>
397 <NuGetPackageId>%(PackageName)</NuGetPackageId>
398 <NuGetPackageVersion>%(PackageVersion)</NuGetPackageVersion>
399 </ResolvedCompileFileDefinitions>
404 <Target Name="_ComputeLockFileFrameworks"
405 Condition="'$(DisableLockFileFrameworks)' != 'true'"
406 DependsOnTargets="_ComputeTFMOnlyFileDependencies"
407 Returns="ResolvedFrameworkAssemblies">
409 <_FrameworkAssemblies Include="@(_TFMOnlyFileDependencies->WithMetadataValue('FileGroup', 'FrameworkAssembly'))" />
411 <ResolvedFrameworkAssemblies Include="@(_FrameworkAssemblies->'%(FrameworkAssembly)')">
412 <Private>false</Private>
414 <NuGetIsFrameworkReference>true</NuGetIsFrameworkReference>
415 <NuGetSourceType>Package</NuGetSourceType>
416 <NuGetPackageId>%(PackageName)</NuGetPackageId>
417 <NuGetPackageVersion>%(PackageVersion)</NuGetPackageVersion>
418 </ResolvedFrameworkAssemblies>
423 <Target Name="ResolveLockFileReferences"
424 DependsOnTargets="_ComputeLockFileReferences;_ComputeLockFileFrameworks">
427 <!-- Add framework references from NuGet packages here, so that if there is also a matching reference from a NuGet package,
428 it will be treated the same as a reference from the project file. -->
429 <Reference Include="@(ResolvedFrameworkAssemblies)" />
431 <ResolvedCompileFileDefinitions Update="@(ResolvedCompileFileDefinitions)">
432 <HintPath>%(FullPath)</HintPath>
433 </ResolvedCompileFileDefinitions>
436 <JoinItems Left="@(ResolvedCompileFileDefinitions)" LeftKey="FileName" LeftMetadata="*"
437 Right="@(Reference)" RightKey="" RightMetadata="*">
438 <Output TaskParameter="JoinResult" ItemName="_JoinedResolvedCompileFileDefinitions" />
442 <Reference Remove="@(_JoinedResolvedCompileFileDefinitions)" />
443 <Reference Include="@(_JoinedResolvedCompileFileDefinitions)" />
447 <ResolvedCompileFileDefinitionsToAdd Include="@(ResolvedCompileFileDefinitions)" />
448 <ResolvedCompileFileDefinitionsToAdd Remove="%(_JoinedResolvedCompileFileDefinitions.HintPath)" />
450 <!-- Add the references we computed -->
451 <Reference Include="@(ResolvedCompileFileDefinitionsToAdd)" />
456 ============================================================
457 ProjectReference Targets: Include transitive project references before
458 ResolveProjectReferences is called
459 - _ComputeTransitiveProjectReferences
460 - IncludeTransitiveProjectReferences
461 ============================================================
464 <Target Name="_ComputeTransitiveProjectReferences"
465 DependsOnTargets="_ComputeActiveTFMPackageDependencies"
466 Returns="_TransitiveProjectReferences">
468 <_TransitiveProjectDependencies Include="@(_ActiveTFMPackageDependencies->WithMetadataValue('TransitiveProjectReference', 'true'))" />
470 <!-- Get corresponding package definitions -->
471 <JoinItems Left="@(_TransitiveProjectDependencies)" Right="@(PackageDefinitions)" RightMetadata="*">
472 <Output TaskParameter="JoinResult" ItemName="_TransitiveProjectDefinitions" />
475 <_TransitiveProjectReferences Include="%(_TransitiveProjectDefinitions.Path)">
476 <ResolvedPath>%(_TransitiveProjectDefinitions.ResolvedPath)</ResolvedPath>
477 </_TransitiveProjectReferences>
481 <Target Name="IncludeTransitiveProjectReferences"
482 DependsOnTargets="_ComputeTransitiveProjectReferences" >
484 <!-- Add the references we computed -->
485 <ProjectReference Include="@(_TransitiveProjectReferences)" />
490 ============================================================
491 Analyzer Targets: For populating Analyzers based on lock file
492 - _ComputeLockFileAnalyzers
493 - ResolveLockFileAnalyzers
494 ============================================================
497 <Target Name="_ComputeLockFileAnalyzers"
498 DependsOnTargets="RunResolvePackageDependencies"
499 Returns="ResolvedAnalyzers">
501 <AnalyzerFiles Include="@(FileDefinitions->WithMetadataValue('Analyzer', 'true'))" />
502 <ResolvedAnalyzers Include="%(AnalyzerFiles.ResolvedPath)" />
506 <Target Name="ResolveLockFileAnalyzers"
507 DependsOnTargets="_ComputeLockFileAnalyzers">
510 <!-- Add the analyzers we computed -->
511 <Analyzer Include="@(ResolvedAnalyzers)" />
517 ============================================================
518 CopyLocal Targets: For populating CopyLocal based on lock file
519 - _ComputeLockFileCopyLocal
520 - ResolveLockFileCopyLocalProjectDeps
521 ============================================================
524 <Target Name="_ComputeLockFileCopyLocal"
525 DependsOnTargets="_ComputeActiveTFMFileDependencies;RunProduceContentAssets"
526 Returns="NativeCopyLocalItems;RuntimeCopyLocalItems;ResourceCopyLocalItems;AllCopyLocalItems">
528 <_NativeFileItems Include="@(_ActiveTFMFileDependencies->WithMetadataValue('FileGroup', 'NativeLibrary'))" />
529 <_RuntimeFileItems Include="@(_ActiveTFMFileDependencies->WithMetadataValue('FileGroup', 'RuntimeAssembly'))" />
530 <_ResourceFileItems Include="@(_ActiveTFMFileDependencies->WithMetadataValue('FileGroup', 'ResourceAssembly'))" />
534 <JoinItems Left="@(_NativeFileItems)" Right="@(FileDefinitions)" RightMetadata="*">
535 <Output TaskParameter="JoinResult" ItemName="_NativeCopyLocalItems" />
538 <!--RuntimeAssembly-->
539 <JoinItems Left="@(_RuntimeFileItems)" Right="@(FileDefinitions)" RightMetadata="*">
540 <Output TaskParameter="JoinResult" ItemName="_RuntimeCopyLocalItems" />
543 <!--ResourceAssembly-->
544 <JoinItems Left="@(_ResourceFileItems)" Right="@(FileDefinitions)" RightMetadata="*">
545 <Output TaskParameter="JoinResult" ItemName="_ResourceCopyLocalItems" />
550 <NativeCopyLocalItems Include="%(_NativeCopyLocalItems.ResolvedPath)" />
551 <RuntimeCopyLocalItems Include="%(_RuntimeCopyLocalItems.ResolvedPath)" />
553 <!-- These resource items are in folders with names which correspond to the locale. Here, set the DestinationSubDirectory to the
554 folder name so that it will be copied to the right target path and so conflict resolution won't think there are conflicts
555 between satellite assemblies in different languages. -->
556 <_ResourceCopyLocalItems Update="@(_ResourceCopyLocalItems)" Condition="'@(_ResourceCopyLocalItems)' != ''">
557 <DestinationSubDirectory>$([System.IO.Directory]::GetParent(%(ResolvedPath)).get_Name())\</DestinationSubDirectory>
558 </_ResourceCopyLocalItems>
559 <ResourceCopyLocalItems Include="%(_ResourceCopyLocalItems.ResolvedPath)">
560 <DestinationSubDirectory>%(_ResourceCopyLocalItems.DestinationSubDirectory)</DestinationSubDirectory>
561 </ResourceCopyLocalItems>
564 <_AllCopyLocalItems Include="@(_NativeCopyLocalItems);@(_RuntimeCopyLocalItems);@(_ResourceCopyLocalItems)" />
566 <AllCopyLocalItems Include="@(_AllCopyLocalItems->'%(ResolvedPath)')">
567 <Private>false</Private>
568 <NuGetIsFrameworkReference>false</NuGetIsFrameworkReference>
569 <NuGetSourceType>Package</NuGetSourceType>
570 <NuGetPackageId>%(PackageName)</NuGetPackageId>
571 <NuGetPackageVersion>%(PackageVersion)</NuGetPackageVersion>
574 <AllCopyLocalItems Include="@(_ContentCopyLocalItems)">
575 <Private>false</Private>
576 <NuGetIsFrameworkReference>false</NuGetIsFrameworkReference>
577 <NuGetSourceType>Package</NuGetSourceType>
578 <NuGetPackageId>%(PackageName)</NuGetPackageId>
579 <NuGetPackageVersion>%(PackageVersion)</NuGetPackageVersion>
585 <Target Name="ResolveLockFileCopyLocalProjectDeps"
586 Condition="'$(CopyLocalLockFileAssemblies)' == 'true'"
587 DependsOnTargets="_ComputeLockFileCopyLocal">
589 <!-- Add the copy local items -->
591 <ReferenceCopyLocalPaths Include="@(AllCopyLocalItems)" />