【发布时间】:2018-09-19 14:39:05
【问题描述】:
我正在尝试在共享库中编写一个自定义目标,这将允许我提取我们项目的所有 NuGet 依赖项,以便运行 ILRepack 以隐藏依赖项。
我的主要挑战是该项目是跨 net45、net46 和 netstandard2.0 的多目标。如果不是这种情况,直接使用 NuGet 中现成的 ILRepack 目标之一将相当简单。
我正在尝试的是,在构建完成并构建我们的 DLL 之后,手动枚举依赖的 DLL 路径,将它们复制到已知位置,然后在我们的 DLL 上运行 ILRepack 以合并所有依赖项。我想通过 MSBuild 来实现这一点,以避免编写复杂的脚本来检索多个目标框架的依赖关系。
我一直专注于通过运行dotnet msbuild /pp:fullproj.xml 创建的完整项目 xml 导出来进行调查。作为构建过程的一部分,是否有可用的目标或输出参数可以让我提取所有 .dll 文件的绝对路径,这些文件通常会在最终的 .nupkg 中结束?
TL;DR 我是否有一种内置方法可以枚举 MSBuild 目标中所有 NuGet 依赖 DLL 的绝对路径?
【问题讨论】: