我已創建包含多個項目的VS2013解決方案。其中一個項目是一個面向.NET 4.5+,Silverlight 5,Windows Store 8+和Windows Phone 8的可移植類庫,該項目包含對隨附Web應用程序中的OData服務的引用。您必須添加對程序集「Microsoft.Data.Services.Client.Portable ...」的引用。&NUGET
可移植類庫引用Microsoft.Data.Services.Client.Portable(等等),通過nuget(WCF數據服務客戶端)添加。
然後,我已經將可移植類庫添加到WPF(.NET 4.5)應用程序,Windows應用商店應用程序和Windows Phone應用程序,並編寫了一些非常基本的測試代碼以訪問該服務。這在Windows Store和Windows Phone中工作正常。
然而,WPF應用程序不會編譯。這些錯誤是...
- 類型「System.Data.Services.Client.DataServiceContext」在未引用的程序集定義 。您必須添加對組件'Microsoft.Data.Services.Client.Portable,版本= 5.6.0.0, Culture = neutral,PublicKeyToken = 31bf3856ad364e35'的引用。
- 類型'System.Data.Services.Client.DataServiceQuery`1'在沒有引用的 程序集中定義。您必須添加對程序集 'Microsoft.Data.Services.Client.Portable,Version = 5.6.0.0, Culture = neutral,PublicKeyToken = 31bf3856ad364e35'的引用。
的事情是,我還添加了WCF數據服務客戶端通過的NuGet WPF應用程序,但它不添加一個引用到便攜式庫(packages\Microsoft.Data.Services.Client.5.6.0\lib\portable-net45+sl5+wp8+win8\Microsoft.Data.Services.Client.Portable.dll
),而不是增加了完整的框架4.0版本的引用(packages\Microsoft.Data.Services.Client.5.6.0\lib\net40\Microsoft.Data.Services.Client.dll
) - 這反過來導致了我所看到的錯誤。
有沒有什麼我在做錯了或者這是安裝包中的錯誤?請注意,如果我刪除違規引用並手動添加替代引用,那麼一切都很好,儘管我有一個解決方法,但我仍然想知道我是否是錯誤的原因。
很好找;我認爲你已經證明了我的身份,但是我仍然不確定他們所做的是否正確(對於這個軟件包),因爲生成的代碼在交換到便攜版本之前無法編譯。謝謝。 –