首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从nuget包引用nuget包

从nuget包引用nuget包
EN

Stack Overflow用户
提问于 2017-04-25 22:06:43
回答 1查看 89关注 0票数 0

我有一个nuget包,它依赖于其他几个包(例如Newtonsoft.Json)。Package并不打算用作类库,它只添加了自定义的MSBuild操作,因此package的结构如下所示:

代码语言:javascript
复制
-package CustomBuildAction
|-lib/net45/CustomBuildAction.dll
|-build/CustomBuildAction.targets

当我安装包时,CustomBuildAction.targets是从csproj正确引用的,但是当我试图运行build时,我得到一个错误:

无法从程序集"path to dll/CustomBuildAction.dll“加载"CustomBuildAction”任务。无法加载文件或程序集“”Newtonsoft.Json.dll,Version=...“”或者它的一个依赖项。

我已经将Newtonsoft.Json.dll作为包依赖项包含到nuspec文件中,nuget将其显示为依赖项,但MSBuild无法解析它。对我来说,问题似乎是我使用packages文件夹中的相对路径(相对于构建文件夹)从.targets文件引用了CustomBuildAction.dll,即:

代码语言:javascript
复制
../lib/net45/CustomBuildAction.dll

但是这个dll并不打算放在build output文件夹中,在这个文件夹中它可以找到它的所有依赖项。如何解决此问题?我是否应该将依赖项直接包含到包中,或者有其他方法来解决它?

EN

回答 1

Stack Overflow用户

发布于 2017-05-03 11:47:26

MSBuild将解析包含任务程序集的文件夹中的任务依赖项。不幸的是,这意味着您需要在CustomBuildAction.dll文件的同时将Newtonsoft.Json.dll包含在NuGet包中。

若要防止程序集在生成输出中结束,请将程序集放入包中的其他文件夹中。例如,tools/只要它不在lib中,它就不会被视为可供引用的程序集。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43612991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档