我想获取在.csproj给定以下要求中引用的所有程序集的路径:
.dll导入)关于如何为项目参考做这件事有一个很好的答案:
<MSBuild Projects="@(ProjectReference)" Targets="GetTargetPath">
<Output TaskParameter="TargetOutputs" ItemName="MyReferencedAssemblies" />
</MSBuild>
Run Code Online (Sandbox Code Playgroud)
有没有类似的方法来获取.dll所有其他类型引用的路径?
似乎有一种干净的方法可以做到:
<Target Name="GatherReferences" DependsOnTargets="ResolveReferences">
<ItemGroup>
<MyReferencedAssemblies Include="@(ReferencePath)" />
</ItemGroup>
</Target>
Run Code Online (Sandbox Code Playgroud)
在该MyReferencedAssemblies项目组之后包含所有引用的 DLL(完整路径,所有类型)的集合。它也适用PackageReference于新.csproj格式的导入。重要的部分是@(ReferencePath)只有在ResolveReferences完成后才非空。