我正在尝试构建一个nuget包,它安装一个可移植的类库,它本身依赖于可移植类库的集合。我可以创建包并安装它没有问题,但是当我运行安装了新软件包的应用程序时,.NET 4.5。类库测试项目,我总是得到以下异常:
threw exception:
System.IO.FileNotFoundException: Could not load file or assembly
'Microsoft.Data.Services.Client.Portable, Version=5.6.1.0, Culture=neutral, ...
我的nuspec文件,包含以下依赖项部分。
<dependencies>
<group targetFramework="portable-net45+wp80+win">
<dependency id="Microsoft.Bcl" version="1.1.6" />
<dependency id="Newtonsoft.Json" version="6.0.2" />
<dependency id="Microsoft.Data.Services.Client" version="5.6.1" />
<dependency id="Microsoft.AspNet.WebApi.Client" version="5.1.1" />
</group>
</dependencies>
我过去创造了许多nuget包,从未见过这个问题。我猜它与引用我正在创建的PCL dll中的每个库的PCL版本有关但我无法如何让这个nuget正常工作。
我错过了什么?
答案 0 :(得分:0)
这看起来像是Microsoft.Data.Services.Client NuGet包的问题。对于.NET Framework和Silverlight版本,它使用不同的程序集名称作为可移植版本。因此,您的可移植程序集是针对Microsoft.Data.Services.Client.Portable.dll编译的,但是当您的NuGet包安装到.NET项目中时,会引用Microsoft.Data.Services.Client.dll。
通常,像这样的包应该在所有平台上使用相同的程序集名称(尽管API也需要在平台之间兼容)。