首页 > 解决方案 > 为什么没有为 NuGet 包中的自定义 MSBuild 任务解析传递依赖项?

问题描述

我有一个包含在 NuGet 包中的自定义 MSBuild 任务。包的构建目录有一个使用该任务的目标文件,因此用户只需添加包引用即可执行 MSBuild 任务。

那部分工作正常。但是,我的自定义任务的包依赖项没有得到解决,所以 MSBuild 抛出异常,说找不到程序集,

有任何想法吗?

标签: msbuildnuget

解决方案


您需要在任务 dll 文件旁边包含所有依赖项,以便 MSBuild 可以找到它们。这些依赖关系与正在构建的项目的依赖关系或包依赖关系图没有任何关系,而只是 MSBuild 加载 dll 文件。

我建议查看https://github.com/AArnott/Nerdbank.MSBuildExtension这是一个工具 NuGet 包,可帮助构建可在 .NET Core 和 .NET Framework MSBuild(dotnet工具和msbuild.exe)上使用任务库的MSBuild 任务有助于隔离依赖关系的类,因为您无法加载与已加载到 VS 中的程序集或与另一个任务的依赖项冲突的程序集。


推荐阅读