2 ***********************************************************************************************
\r
3 Microsoft.PackageDependencyResolution.targets
\r
5 WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
\r
6 created a backup copy. Incorrect changes to this file will make it
\r
7 impossible to load or build your projects from the command-line or the IDE.
\r
9 Copyright (c) .NET Foundation. All rights reserved.
\r
10 ***********************************************************************************************
\r
12 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
\r
15 *************************************
\r
17 - That configure the PackageDependency targets
\r
18 *************************************
\r
21 <!-- General Properties -->
\r
23 <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
\r
26 <!-- Project Assets File -->
\r
28 <ProjectAssetsFile Condition="'$(ProjectAssetsFile)' == ''">$(BaseIntermediateOutputPath)/project.assets.json</ProjectAssetsFile>
\r
32 <!-- Ensure $(ProjectAssetsFile) is a full path -->
\r
33 <ProjectAssetsFile Condition="'$([System.IO.Path]::IsPathRooted($(ProjectAssetsFile)))' != 'true'">$([System.IO.Path]::GetFullPath($([System.IO.Path]::Combine('$(MSBuildProjectDirectory)', '$(ProjectAssetsFile)'))))</ProjectAssetsFile>
\r
37 <ResolvePackageDependenciesForBuild Condition="'$(ResolvePackageDependenciesForBuild)' == ''">true</ResolvePackageDependenciesForBuild>
\r
38 <CopyLocalLockFileAssemblies Condition="'$(CopyLocalLockFileAssemblies)' == ''">true</CopyLocalLockFileAssemblies>
\r
40 <ContentPreprocessorOutputDirectory Condition="'$(ContentPreprocessorOutputDirectory)' == ''">$(IntermediateOutputPath)NuGet\</ContentPreprocessorOutputDirectory>
\r
41 <ProduceOnlyPreprocessorFilesInBuildTask Condition="'$(ProduceOnlyPreprocessorFilesInBuildTask)' == ''">true</ProduceOnlyPreprocessorFilesInBuildTask>
\r
43 <UseTargetPlatformAsNuGetTargetMoniker Condition="'$(UseTargetPlatformAsNuGetTargetMoniker)' == '' AND '$(TargetFrameworkMoniker)' == '.NETCore,Version=v5.0'">true</UseTargetPlatformAsNuGetTargetMoniker>
\r
44 <NuGetTargetMoniker Condition="'$(NuGetTargetMoniker)' == '' AND '$(UseTargetPlatformAsNuGetTargetMoniker)' == 'true'">$(TargetPlatformIdentifier),Version=v$([System.Version]::Parse('$(TargetPlatformMinVersion)').ToString(3))</NuGetTargetMoniker>
\r
45 <NuGetTargetMoniker Condition="'$(NuGetTargetMoniker)' == '' AND '$(UseTargetPlatformAsNuGetTargetMoniker)' != 'true'">$(TargetFrameworkMoniker)</NuGetTargetMoniker>
\r
47 <EmitAssetsLogMessages Condition="'$(EmitAssetsLogMessages)' == ''">true</EmitAssetsLogMessages>
\r
50 <!-- Target Moniker + RID-->
\r
51 <PropertyGroup Condition="'$(_NugetTargetMonikerAndRID)' == ''">
\r
52 <_NugetTargetMonikerAndRID Condition="'$(RuntimeIdentifier)' == ''">$(NuGetTargetMoniker)</_NugetTargetMonikerAndRID>
\r
53 <_NugetTargetMonikerAndRID Condition="'$(RuntimeIdentifier)' != ''">$(NuGetTargetMoniker)/$(RuntimeIdentifier)</_NugetTargetMonikerAndRID>
\r
57 *************************************
\r
58 2. EXTERNAL PROPERTIES and ITEMS
\r
59 - Override or add to external targets
\r
60 *************************************
\r
64 <ResolveAssemblyReferencesDependsOn>
\r
65 $(ResolveAssemblyReferencesDependsOn);
\r
66 ResolvePackageDependenciesForBuild;
\r
67 _HandlePackageFileConflicts;
\r
68 </ResolveAssemblyReferencesDependsOn>
\r
70 <PrepareResourcesDependsOn>
\r
71 ResolvePackageDependenciesForBuild;
\r
72 _HandlePackageFileConflicts;
\r
73 $(PrepareResourcesDependsOn)
\r
74 </PrepareResourcesDependsOn>
\r
77 <!-- List of targets that emit Dependency DiagnosticMessages items -->
\r
79 <EmitsDependencyDiagnosticMessages>
\r
80 RunResolvePackageDependencies;
\r
81 $(EmitsDependencyDiagnosticMessages)
\r
82 </EmitsDependencyDiagnosticMessages>
\r
85 <!-- Common tokens used in preprocessed content files -->
\r
87 <PreprocessorValue Include="rootnamespace">
\r
88 <Value>$(RootNamespace)</Value>
\r
89 </PreprocessorValue>
\r
90 <PreprocessorValue Include="assemblyname">
\r
91 <Value>$(AssemblyName)</Value>
\r
92 </PreprocessorValue>
\r
93 <PreprocessorValue Include="fullpath">
\r
94 <Value>$(MSBuildProjectDirectory)</Value>
\r
95 </PreprocessorValue>
\r
96 <PreprocessorValue Include="outputfilename">
\r
97 <Value>$(TargetFileName)</Value>
\r
98 </PreprocessorValue>
\r
99 <PreprocessorValue Include="filename">
\r
100 <Value>$(MSBuildProjectFile)</Value>
\r
101 </PreprocessorValue>
\r
102 <PreprocessorValue Include="@(NuGetPreprocessorValue)" Exclude="@(PreprocessorValue)" />
\r
106 *************************************
\r
108 - Override the Depends-On properties, or the individual targets
\r
109 *************************************
\r
113 ============================================================
\r
114 ResolvePackageDependenciesForBuild
\r
116 Populate items for build. This is triggered before target
\r
117 "AssignProjectConfiguration" to ensure ProjectReference items
\r
118 are populated before ResolveProjectReferences is run.
\r
119 ============================================================
\r
122 <ResolvePackageDependenciesForBuildDependsOn>
\r
123 ResolveLockFileReferences;
\r
124 ResolveLockFileAnalyzers;
\r
125 ResolveLockFileCopyLocalProjectDeps;
\r
126 IncludeTransitiveProjectReferences
\r
127 </ResolvePackageDependenciesForBuildDependsOn>
\r
129 <Target Name="ResolvePackageDependenciesForBuild"
\r
130 Condition="'$(ResolvePackageDependenciesForBuild)' == 'true' and Exists('$(ProjectAssetsFile)')"
\r
131 BeforeTargets="AssignProjectConfiguration"
\r
132 DependsOnTargets="$(ResolvePackageDependenciesForBuildDependsOn)" />
\r
135 *************************************
\r
136 4. Package Dependency TASK and TARGETS
\r
137 - Raise the lock file to MSBuild Items and create derived items
\r
138 *************************************
\r
142 ============================================================
\r
143 RunResolvePackageDependencies
\r
145 Generate Definitions and Dependencies based on ResolvePackageDependencies task
\r
146 ============================================================
\r
149 <UsingTask TaskName="Microsoft.NET.Build.Tasks.ResolvePackageDependencies"
\r
150 AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" />
\r
151 <UsingTask TaskName="Microsoft.NET.Build.Tasks.CheckForTargetInAssetsFile"
\r
152 AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" />
\r
154 <!-- The condition on this target causes it to be skipped during design-time builds if
\r
155 the restore operation hasn't run yet. This is to avoid displaying an error in
\r
156 the Visual Studio error list when a project is created before NuGet restore has
\r
157 run and created the assets file. -->
\r
158 <Target Name="RunResolvePackageDependencies"
\r
159 Condition=" '$(DesignTimeBuild)' != 'true' Or Exists('$(ProjectAssetsFile)')"
\r
160 DependsOnTargets="ReportAssetsLogMessages">
\r
162 <!-- Verify that the assets file has a target for the right framework. Otherwise, if we restored for the
\r
163 wrong framework, we'd end up finding no references to pass to the compiler, and we'd get a ton of
\r
164 compile errors. -->
\r
165 <CheckForTargetInAssetsFile
\r
166 AssetsFilePath="$(ProjectAssetsFile)"
\r
167 TargetFrameworkMoniker="$(NuGetTargetMoniker)"
\r
168 RuntimeIdentifier="$(RuntimeIdentifier)" />
\r
170 <ResolvePackageDependencies
\r
171 ProjectPath="$(MSBuildProjectFullPath)"
\r
172 ProjectAssetsFile="$(ProjectAssetsFile)"
\r
173 ProjectLanguage="$(Language)"
\r
174 ContinueOnError="ErrorAndContinue">
\r
176 <Output TaskParameter="TargetDefinitions" ItemName="TargetDefinitions" />
\r
177 <Output TaskParameter="PackageDefinitions" ItemName="PackageDefinitions" />
\r
178 <Output TaskParameter="FileDefinitions" ItemName="FileDefinitions" />
\r
179 <Output TaskParameter="PackageDependencies" ItemName="PackageDependencies" />
\r
180 <Output TaskParameter="FileDependencies" ItemName="FileDependencies" />
\r
181 <Output TaskParameter="DiagnosticMessages" ItemName="DiagnosticMessages" />
\r
182 </ResolvePackageDependencies>
\r
187 ============================================================
\r
188 ResolvePackageDependenciesDesignTime
\r
190 Aggregate the dependencies produced by ResolvePackageDependencies to a form
\r
191 that's consumable by an IDE to display package dependencies.
\r
192 ============================================================
\r
195 <UsingTask TaskName="Microsoft.NET.Build.Tasks.PreprocessPackageDependenciesDesignTime"
\r
196 AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" />
\r
198 <Target Name="ResolvePackageDependenciesDesignTime"
\r
199 Returns="@(_DependenciesDesignTime)"
\r
200 DependsOnTargets="ResolveAssemblyReferencesDesignTime;$(EmitsDependencyDiagnosticMessages)">
\r
202 <PreprocessPackageDependenciesDesignTime
\r
203 TargetDefinitions="@(TargetDefinitions)"
\r
204 PackageDefinitions="@(PackageDefinitions)"
\r
205 FileDefinitions="@(FileDefinitions)"
\r
206 PackageDependencies="@(PackageDependencies)"
\r
207 FileDependencies="@(FileDependencies)"
\r
208 References="@(Reference)"
\r
209 DefaultImplicitPackages="$(DefaultImplicitPackages)"
\r
210 InputDiagnosticMessages="@(DiagnosticMessages)">
\r
212 <Output TaskParameter="DependenciesDesignTime" ItemName="_DependenciesDesignTime" />
\r
213 </PreprocessPackageDependenciesDesignTime>
\r
217 ============================================================
\r
218 CollectSDKReferencesDesignTime
\r
220 Aggregates the sdk specified as project items and implicit
\r
221 packages references.
\r
222 ============================================================
\r
224 <UsingTask TaskName="Microsoft.NET.Build.Tasks.CollectSDKReferencesDesignTime"
\r
225 AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" />
\r
227 <Target Name="CollectSDKReferencesDesignTime"
\r
228 Returns="@(_SDKReference)"
\r
229 DependsOnTargets="CollectPackageReferences">
\r
231 <CollectSDKReferencesDesignTime
\r
232 SdkReferences="@(SdkReference)"
\r
233 PackageReferences="@(PackageReference)"
\r
234 DefaultImplicitPackages="$(DefaultImplicitPackages)">
\r
236 <Output TaskParameter="SDKReferencesDesignTime" ItemName="_SDKReference" />
\r
237 </CollectSDKReferencesDesignTime>
\r
241 ============================================================
\r
242 CollectResolvedSDKReferencesDesignTime
\r
244 Aggregates the sdk specified as project items and implicit
\r
245 packages produced by ResolvePackageDependencies.
\r
246 ============================================================
\r
248 <Target Name="CollectResolvedSDKReferencesDesignTime"
\r
249 Returns="@(_ResolvedSDKReference)"
\r
250 DependsOnTargets="ResolveSDKReferencesDesignTime;CollectPackageReferences">
\r
252 <CollectSDKReferencesDesignTime
\r
253 SdkReferences="@(ResolvedSdkReference)"
\r
254 PackageReferences="@(PackageReference)"
\r
255 DefaultImplicitPackages="$(DefaultImplicitPackages)">
\r
257 <Output TaskParameter="SDKReferencesDesignTime" ItemName="_ResolvedSDKReference" />
\r
258 </CollectSDKReferencesDesignTime>
\r
262 ============================================================
\r
263 RunProduceContentAssets
\r
265 Process content assets by handling preprocessing tokens where necessary, and
\r
266 produce copy local items, content items grouped by "build action" and file writes
\r
267 ============================================================
\r
270 <UsingTask TaskName="Microsoft.NET.Build.Tasks.ProduceContentAssets"
\r
271 AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" />
\r
273 <Target Name="RunProduceContentAssets"
\r
274 Returns="_ContentCopyLocalItems;FileWrites"
\r
275 DependsOnTargets="_ComputeActiveTFMFileDependencies">
\r
277 <_ContentFileDeps Include="@(_ActiveTFMFileDependencies->WithMetadataValue('FileGroup', 'ContentFile'))" />
\r
278 <__ContentFileDefs Include="@(FileDefinitions)" Exclude="@(_ContentFileDeps)" />
\r
279 <_ContentFileDefs Include="@(FileDefinitions)" Exclude="@(__ContentFileDefs)" />
\r
282 <ProduceContentAssets
\r
283 ContentFileDefinitions="@(_ContentFileDefs)"
\r
284 ContentFileDependencies="@(_ContentFileDeps)"
\r
285 ContentPreprocessorValues="@(PreprocessorValue)"
\r
286 ContentPreprocessorOutputDirectory="$(ContentPreprocessorOutputDirectory)"
\r
287 ProduceOnlyPreprocessorFiles="$(ProduceOnlyPreprocessorFilesInBuildTask)"
\r
288 ProjectLanguage="$(Language)">
\r
290 <Output TaskParameter="CopyLocalItems" ItemName="_ContentCopyLocalItems" />
\r
291 <Output TaskParameter="ProcessedContentItems" ItemName="_ProcessedContentItems" />
\r
292 <Output TaskParameter="FileWrites" ItemName="FileWrites" />
\r
293 </ProduceContentAssets>
\r
295 <!-- The items in _ProcessedContentItems need to go into the appropriately-named item group,
\r
296 but the names depend upon the items themselves. Split it apart. -->
\r
297 <CreateItem Include="@(_ProcessedContentItems)" Condition="'@(_ProcessedContentItems)' != ''">
\r
298 <Output TaskParameter="Include" ItemName="%(_ProcessedContentItems.ProcessedItemType)" />
\r
303 ============================================================
\r
304 ReportAssetsLogMessages
\r
306 Report Log Messages in the assets file to MSBuild and raise them as
\r
307 DiagnosticMessage items that can be consumed downstream (e.g. by the
\r
308 dependency node in the solution explorer)
\r
309 ============================================================
\r
312 <UsingTask TaskName="Microsoft.NET.Build.Tasks.ReportAssetsLogMessages"
\r
313 AssemblyFile="$(MicrosoftNETBuildTasksAssembly)" />
\r
315 <!-- The condition on this target causes it to be skipped during design-time builds if
\r
316 the restore operation hasn't run yet. This is to avoid displaying an error in
\r
317 the Visual Studio error list when a project is created before NuGet restore has
\r
318 run and created the assets file. -->
\r
319 <Target Name="ReportAssetsLogMessages"
\r
320 Condition="'$(EmitAssetsLogMessages)' == 'true' And ('$(DesignTimeBuild)' != 'true' Or Exists('$(ProjectAssetsFile)'))">
\r
322 <ReportAssetsLogMessages
\r
323 ProjectAssetsFile="$(ProjectAssetsFile)"
\r
324 ContinueOnError="ErrorAndContinue">
\r
326 <Output TaskParameter="DiagnosticMessages" ItemName="DiagnosticMessages" />
\r
327 </ReportAssetsLogMessages>
\r
332 <EmitsDependencyDiagnosticMessages>
\r
333 ReportAssetsLogMessages;
\r
334 $(EmitsDependencyDiagnosticMessages)
\r
335 </EmitsDependencyDiagnosticMessages>
\r
339 ============================================================
\r
340 HELPERS: Get Package and File Dependencies matching active TFM and RID
\r
341 ============================================================
\r
344 <Target Name="_ComputeActiveTFMPackageDependencies"
\r
345 DependsOnTargets="RunResolvePackageDependencies"
\r
346 Returns="_ActiveTFMPackageDependencies">
\r
348 <_ActiveTFMPackageDependencies Include="@(PackageDependencies->WithMetadataValue('ParentTarget', '$(_NugetTargetMonikerAndRID)'))" />
\r
352 <Target Name="_ComputeActiveTFMFileDependencies"
\r
353 DependsOnTargets="RunResolvePackageDependencies"
\r
354 Returns="_ActiveTFMFileDependencies">
\r
356 <_ActiveTFMFileDependencies Include="@(FileDependencies->WithMetadataValue('ParentTarget', '$(_NugetTargetMonikerAndRID)'))" />
\r
360 <Target Name="_ComputeTFMOnlyFileDependencies"
\r
361 DependsOnTargets="RunResolvePackageDependencies"
\r
362 Returns="_TFMOnlyFileDependencies">
\r
364 <_TFMOnlyFileDependencies Include="@(FileDependencies->WithMetadataValue('ParentTarget', '$(NuGetTargetMoniker)'))" />
\r
369 ============================================================
\r
370 Reference Targets: For populating References based on lock file
\r
371 - _ComputeLockFileReferences
\r
372 - _ComputeLockFileFrameworks
\r
373 - ResolveLockFileReferences
\r
374 ============================================================
\r
377 <Target Name="_ComputeLockFileReferences"
\r
378 DependsOnTargets="_ComputeTFMOnlyFileDependencies"
\r
379 Returns="ResolvedCompileFileDefinitions">
\r
381 <_CompileFileItems Include="@(_TFMOnlyFileDependencies->WithMetadataValue('FileGroup', 'CompileTimeAssembly'))" />
\r
383 <!-- Get corresponding file definitions -->
\r
384 <__CompileFileDefinitions Include="@(FileDefinitions)" Exclude="@(_CompileFileItems)" />
\r
385 <_CompileFileDefinitions Include="@(FileDefinitions)" Exclude="@(__CompileFileDefinitions)" />
\r
387 <ResolvedCompileFileDefinitions Include="@(_CompileFileDefinitions->'%(ResolvedPath)')">
\r
388 <Private>false</Private>
\r
389 <NuGetIsFrameworkReference>false</NuGetIsFrameworkReference>
\r
390 <NuGetSourceType>Package</NuGetSourceType>
\r
391 <NuGetPackageId>%(PackageName)</NuGetPackageId>
\r
392 <NuGetPackageVersion>%(PackageVersion)</NuGetPackageVersion>
\r
393 </ResolvedCompileFileDefinitions>
\r
398 <Target Name="_ComputeLockFileFrameworks"
\r
399 Condition="'$(DisableLockFileFrameworks)' != 'true'"
\r
400 DependsOnTargets="_ComputeTFMOnlyFileDependencies"
\r
401 Returns="ResolvedFrameworkAssemblies">
\r
403 <_FrameworkAssemblies Include="@(_TFMOnlyFileDependencies->WithMetadataValue('FileGroup', 'FrameworkAssembly'))" />
\r
405 <ResolvedFrameworkAssemblies Include="@(_FrameworkAssemblies->'%(FrameworkAssembly)')">
\r
406 <Private>false</Private>
\r
407 <NuGetIsFrameworkReference>true</NuGetIsFrameworkReference>
\r
408 <NuGetSourceType>Package</NuGetSourceType>
\r
409 <NuGetPackageId>%(PackageName)</NuGetPackageId>
\r
410 <NuGetPackageVersion>%(PackageVersion)</NuGetPackageVersion>
\r
411 </ResolvedFrameworkAssemblies>
\r
416 <Target Name="ResolveLockFileReferences"
\r
417 DependsOnTargets="_ComputeLockFileReferences;_ComputeLockFileFrameworks">
\r
419 <!-- Add the references we computed -->
\r
420 <Reference Include="@(ResolvedCompileFileDefinitions)" />
\r
421 <Reference Include="@(ResolvedFrameworkAssemblies)" />
\r
423 <!-- Remove simple name references if we're directly providing a reference assembly to the compiler. For example,
\r
424 consider a project with an Reference Include="System", and some NuGet package is providing System.dll.
\r
425 Simple references can also come from NuGet framework assemblies, hence this statement should occur after
\r
426 including all computed references. -->
\r
427 <Reference Remove="%(ResolvedCompileFileDefinitions.FileName)" />
\r
432 ============================================================
\r
433 ProjectReference Targets: Include transitive project references before
\r
434 ResolveProjectReferences is called
\r
435 - _ComputeTransitiveProjectReferences
\r
436 - IncludeTransitiveProjectReferences
\r
437 ============================================================
\r
440 <Target Name="_ComputeTransitiveProjectReferences"
\r
441 DependsOnTargets="_ComputeActiveTFMPackageDependencies"
\r
442 Returns="_TransitiveProjectReferences">
\r
444 <_TransitiveProjectDependencies Include="@(_ActiveTFMPackageDependencies->WithMetadataValue('TransitiveProjectReference', 'true'))" />
\r
446 <!-- Get corresponding package definitions -->
\r
447 <__TransitiveProjectDefinitions Include="@(PackageDefinitions)" Exclude="@(_TransitiveProjectDependencies)" />
\r
448 <_TransitiveProjectDefinitions Include="@(PackageDefinitions)" Exclude="@(__TransitiveProjectDefinitions)" />
\r
450 <_TransitiveProjectReferences Include="%(_TransitiveProjectDefinitions.Path)">
\r
451 <ResolvedPath>%(_TransitiveProjectDefinitions.ResolvedPath)</ResolvedPath>
\r
452 </_TransitiveProjectReferences>
\r
456 <Target Name="IncludeTransitiveProjectReferences"
\r
457 DependsOnTargets="_ComputeTransitiveProjectReferences" >
\r
459 <!-- Add the references we computed -->
\r
460 <ProjectReference Include="@(_TransitiveProjectReferences)" />
\r
465 ============================================================
\r
466 Analyzer Targets: For populating Analyzers based on lock file
\r
467 - _ComputeLockFileAnalyzers
\r
468 - ResolveLockFileAnalyzers
\r
469 ============================================================
\r
472 <Target Name="_ComputeLockFileAnalyzers"
\r
473 DependsOnTargets="RunResolvePackageDependencies"
\r
474 Returns="ResolvedAnalyzers">
\r
476 <AnalyzerFiles Include="@(FileDefinitions->WithMetadataValue('Analyzer', 'true'))" />
\r
477 <ResolvedAnalyzers Include="%(AnalyzerFiles.ResolvedPath)" />
\r
481 <Target Name="ResolveLockFileAnalyzers"
\r
482 DependsOnTargets="_ComputeLockFileAnalyzers">
\r
485 <!-- Add the analyzers we computed -->
\r
486 <Analyzer Include="@(ResolvedAnalyzers)" />
\r
492 ============================================================
\r
493 CopyLocal Targets: For populating CopyLocal based on lock file
\r
494 - _ComputeLockFileCopyLocal
\r
495 - ResolveLockFileCopyLocalProjectDeps
\r
496 ============================================================
\r
499 <Target Name="_ComputeLockFileCopyLocal"
\r
500 DependsOnTargets="_ComputeActiveTFMFileDependencies;RunProduceContentAssets"
\r
501 Returns="NativeCopyLocalItems;RuntimeCopyLocalItems;ResourceCopyLocalItems;AllCopyLocalItems">
\r
503 <!--NativeLibrary-->
\r
504 <_NativeFileItems Include="@(_ActiveTFMFileDependencies->WithMetadataValue('FileGroup', 'NativeLibrary'))" />
\r
505 <__NativeCopyLocalItems Include="@(FileDefinitions)" Exclude="@(_NativeFileItems)" />
\r
506 <_NativeCopyLocalItems Include="@(FileDefinitions)" Exclude="@(__NativeCopyLocalItems)" />
\r
507 <NativeCopyLocalItems Include="%(_NativeCopyLocalItems.ResolvedPath)" />
\r
509 <!--RuntimeAssembly-->
\r
510 <_RuntimeFileItems Include="@(_ActiveTFMFileDependencies->WithMetadataValue('FileGroup', 'RuntimeAssembly'))" />
\r
511 <__RuntimeCopyLocalItems Include="@(FileDefinitions)" Exclude="@(_RuntimeFileItems)" />
\r
512 <_RuntimeCopyLocalItems Include="@(FileDefinitions)" Exclude="@(__RuntimeCopyLocalItems)" />
\r
513 <RuntimeCopyLocalItems Include="%(_RuntimeCopyLocalItems.ResolvedPath)" />
\r
515 <!--ResourceAssembly-->
\r
516 <_ResourceFileItems Include="@(_ActiveTFMFileDependencies->WithMetadataValue('FileGroup', 'ResourceAssembly'))" />
\r
517 <__ResourceCopyLocalItems Include="@(FileDefinitions)" Exclude="@(_ResourceFileItems)" />
\r
518 <_ResourceCopyLocalItems Include="@(FileDefinitions)" Exclude="@(__ResourceCopyLocalItems)" />
\r
519 <ResourceCopyLocalItems Include="%(_ResourceCopyLocalItems.ResolvedPath)" />
\r
522 <_AllCopyLocalItems Include="@(_NativeCopyLocalItems);@(_RuntimeCopyLocalItems);@(_ResourceCopyLocalItems)" />
\r
524 <AllCopyLocalItems Include="@(_AllCopyLocalItems->'%(ResolvedPath)')">
\r
525 <Private>false</Private>
\r
526 <NuGetIsFrameworkReference>false</NuGetIsFrameworkReference>
\r
527 <NuGetSourceType>Package</NuGetSourceType>
\r
528 <NuGetPackageId>%(PackageName)</NuGetPackageId>
\r
529 <NuGetPackageVersion>%(PackageVersion)</NuGetPackageVersion>
\r
530 </AllCopyLocalItems>
\r
532 <AllCopyLocalItems Include="@(_ContentCopyLocalItems)">
\r
533 <Private>false</Private>
\r
534 <NuGetIsFrameworkReference>false</NuGetIsFrameworkReference>
\r
535 <NuGetSourceType>Package</NuGetSourceType>
\r
536 <NuGetPackageId>%(PackageName)</NuGetPackageId>
\r
537 <NuGetPackageVersion>%(PackageVersion)</NuGetPackageVersion>
\r
538 </AllCopyLocalItems>
\r
543 <Target Name="ResolveLockFileCopyLocalProjectDeps"
\r
544 Condition="'$(CopyLocalLockFileAssemblies)' == 'true'"
\r
545 DependsOnTargets="_ComputeLockFileCopyLocal">
\r
547 <!-- Add the copy local items -->
\r
549 <ReferenceCopyLocalPaths Include="@(AllCopyLocalItems)" Exclude="@(ResourceCopyLocalItems)" />
\r
550 <ReferenceCopyLocalPaths Include="@(ResourceCopyLocalItems)" Condition="'@(ResourceCopyLocalItems)' != ''">
\r
551 <DestinationSubDirectory>$([System.IO.Directory]::GetParent(%(ResourceCopyLocalItems.FullPath)).get_Name())\</DestinationSubDirectory>
\r
552 </ReferenceCopyLocalPaths>
\r