繁体   English   中英

从nuget包引用nuget包

[英]Referencing nuget packages from nuget package

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

-package CustomBuildAction
|-lib/net45/CustomBuildAction.dll
|-build/CustomBuildAction.targets

当我安装包CustomBuildAction.targets可以从csproj中正确引用它,但是当我尝试运行build时,出现错误消息:

无法从程序集“ dll / CustomBuildAction.dll的路径”加载“ CustomBuildAction”任务。 无法加载文件或程序集“ Newtonsoft.Json.dll,Version = ...”或其依赖项之一。

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

../lib/net45/CustomBuildAction.dll

但是,此dll并非旨在放置在可以找到其所有依赖项的生成输出文件夹中。 我该如何解决这个问题? 我应该在包中包含依赖项,还是有另一种解决方案?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM