如何获取 MSBuild 中所有引用 DLL 的路径?

我想获取在.csproj给定以下要求中引用的所有程序集的路径:

  • 包括程序集,无论它们如何被引用(项目、nuget、直接.dll导入)

  • 不触发构建

关于如何为项目参考做这件事有一个很好的答案

<MSBuild Projects="@(ProjectReference)" Targets="GetTargetPath">
  <Output TaskParameter="TargetOutputs" ItemName="MyReferencedAssemblies" />
  </MSBuild>

是否有类似的方法来获取.dll所有其他类型引用的路径?


月关宝盒
浏览 228回答 2
2回答

ITMISS

似乎有一种干净的方法可以做到:&nbsp; <Target Name="GatherReferences" DependsOnTargets="ResolveReferences">&nbsp; &nbsp; <ItemGroup>&nbsp; &nbsp; &nbsp; <MyReferencedAssemblies Include="@(ReferencePath)" />&nbsp; &nbsp; </ItemGroup>&nbsp; </Target>在该MyReferencedAssemblies项目组之后包含所有引用的 DLL(完整路径,所有类型)的集合。它也适用PackageReference于新.csproj格式的导入。重要的部分是@(ReferencePath)只有在ResolveReferences完成后才非空。
打开App,查看更多内容
随时随地看视频慕课网APP