我有一个nuget包,其中包含我的项目中的DLL构建,以及一些支持的第三方DLL。
这之前在.nuspec文件中有一个条目,如下所示:
<files>
<file src="..\..\Libraries\*.dll" target="lib" />
</files>
Nuget会更正引用第三方库以及项目的输出。 但是,我已经更新了我的项目以同时针对.NET v4和v4.5 - 但在这两种情况下,第3部分的DLL都是相同的。
我已将我的nuspec文件更改为:
<files>
<file src="..\..\Libraries\*.dll" target="lib" />
<file src="bin\release\4.0\MyProject.dll" target="lib\net40" />
<file src="bin\release\4.5\MyProject.dll" target="lib\net45" />
</files>
并且nuget包中包含正确位置的所有正确文件。但是,安装程序包后,只引用了“MyProject.dll”,第三方DLL不是。
我将target="lib"
更改为什么,以确保所有框架版本都引用了DLL?
由于
答案 0 :(得分:1)
您应该将第三方dll放入lib \ net40和lib \ net45目录中。
NuGet将查看项目的目标框架,并在NuGet包的lib目录中查找匹配项。当找到匹配时,它只会添加对该特定lib目录中的dll的引用。因此,.NET 4.0项目只会将参考添加到lib \ net40目录中的dll。