msbuild - 为什么没有为 NuGet 包中的自定义 MSBuild 任务解析传递依赖项?
问题描述
我有一个包含在 NuGet 包中的自定义 MSBuild 任务。包的构建目录有一个使用该任务的目标文件,因此用户只需添加包引用即可执行 MSBuild 任务。
那部分工作正常。但是,我的自定义任务的包依赖项没有得到解决,所以 MSBuild 抛出异常,说找不到程序集,
有任何想法吗?
解决方案
您需要在任务 dll 文件旁边包含所有依赖项,以便 MSBuild 可以找到它们。这些依赖关系与正在构建的项目的依赖关系或包依赖关系图没有任何关系,而只是 MSBuild 加载 dll 文件。
我建议查看https://github.com/AArnott/Nerdbank.MSBuildExtension这是一个工具 NuGet 包,可帮助构建可在 .NET Core 和 .NET Framework MSBuild(dotnet
工具和msbuild.exe
)上使用任务库的MSBuild 任务有助于隔离依赖关系的类,因为您无法加载与已加载到 VS 中的程序集或与另一个任务的依赖项冲突的程序集。
推荐阅读
- kubernetes - 不同子网中的 Kubernetes 主节点和节点
- c - 在 fork() 之前,用户创建的进程(如 Hello World)的父进程是什么?
- r - 根据条件将当前行替换为上一行值
- python - 如何从头开始创建一个新的 Spacy 3.0 项目?
- ms-access - 组合框保存 ID 而不是项目名称
- python - 为什么这个解决方案不适合“旋转数组”leetcode 问题?
- sql - 聚合访问 SQL 的问题
- xamarin.forms - VS2019 Xamarin Forms Remote IOS模拟器黑屏 - 如何修复?
- sql - Oracle -- 根据 varchar 时间戳提取月度数据
- django - Unity Facebook SDK 登录,使用 Django 服务在 Chrome 上遇到 CORS/CORB 问题