2014-04-13 66 views
2

我想構建一個nuget包,它安裝一個可移植類庫,它本身對可移植類庫的集合有依賴性。我可以創建軟件包並安裝它,但沒有問題,但是當我使用安裝的新軟件包運行應用程序時,.NET 4.5。我一直得到以下例外:構建一個引用可移植類庫的nuget包

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

這看起來像是Microsoft.Data.Services.Client NuGet包的問題。它對於.NET Framework和Silverlight版本使用便攜版本的不同彙編名稱。因此,您的可移植程序集是針對Microsoft.Data.Services.Client.Portable.dll編譯的,但是當您的NuGet包安裝到.NET項目中時,則會引用Microsoft.Data.Services.Client.dll。

通常,像這樣的包應該在所有平臺上使用相同的程序集名稱(儘管如此,API也需要兼容)。

+0

那麼我應該怎樣改變才能使nuget正常工作? –

+0

@JayTraband你可以做的事情不多。您必須等待NuGet軟件包的固定版本才能發佈。 –

+0

你的意思是Microsoft.Data.Services.Client.Portable nuget? –

相關問題