我有一个nuget包,它取决于其他几个(例如Newtonsoft.Json
)。 包不打算作为一个类库来使用它只是增加了自定义的MSBuild行动,使封装的结构看起来像这样:从nuget包引用nuget包
-package CustomBuildAction
|-lib/net45/CustomBuildAction.dll
|-build/CustomBuildAction.targets
当我安装包CustomBuildAction.targets
正确的的csproj referensed但是当我试图运行生成我得到一个错误:
“CustomBuildAction”任务无法从程序集“path to dll/CustomBuildAction.dll”加载。无法加载文件或程序集“Newtonsoft.Json.dll,Version = ...”或其某个依赖项。
我已将Newtonsoft.Json.dll
纳入nuspec文件作为包依赖项,nuget将其显示为依赖项,但MSBuild无法解析它。对我来说,它看起来像问题是,我从.targets文件夹的包使用相对路径(相对于建立文件夹)参照CustomBuildAction.dll
,即:
../lib/net45/CustomBuildAction.dll
但是这个DLL文件不打算放置到它可以找到所有依赖的构建输出文件夹中。 我该如何解决这个问题?我是否应该将依赖关系包含在软件包中,还是有另一种解决方法?
如果项目仅由自定义MSBuild操作使用,该项目是否需要引用CustomBuildAction.dll?我只是将它放在.targets文件旁边的build目录中,然后从那里导入它。然后在构建目录中也有Newtonsoft.Json.dll。 –
@Matt Ward不,不需要将它作为参考添加到项目中。将尝试将dll移入生成文件夹,有趣的想法 – Leo