2013-08-22 24 views
10
  1. 創建新的Windows 8應用程序App1
  2. 添加ClassLibrary1 Windows 8的類庫項目,以解決
  3. 添加PortableClassLibrary1便攜式類庫在ClassLibrary1
  4. 針對Windows 8和Windows Phone 7.5至溶液
  5. 參考HttpClient NuGet包參考HttpClient NuGet包在PortableClassLibrary1
  6. 參考兩個ClassLibrary1PortableClassLibrary1
  7. 編譯解決方案

您在.appx包階段得到一個錯誤的NuGet,便攜式圖書館和WinRT的APPX:有效載荷包含兩個或多個文件具有相同目的地的路徑

Payload contains two or more files with the same destination path 'System.Net.Http.Primitives.dll'. 
Source files: 
\Projects\App1\PortableClassLibrary1\bin\Debug\System.Net.Http.Primitives.dll 
\Projects\App1\packages\Microsoft.Net.Http.2.2.13\lib\win8\System.Net.Http.Primitives.dll 

請注意,如果你引用任何NuGet包具有同樣的錯誤被複制win8和便攜式組件的混合。

什麼是預期: 庫(win8的一個)的大多數特定版本被打包成.appx和便攜式版本被忽略

如何欺騙APPX打包,並建立這類的Windows 8項目的任何想法?

回答

2

除了這個,你應該得到類似的警告:

所有項目參考ClassLibrary1.csproj必須安裝的NuGet 包Microsoft.Bcl.Build。欲瞭解更多信息,請參閱 http://go.microsoft.com/fwlink/?LinkID=317569

這是一個問題。基本上,它的缺點,你應該安裝HttpClient.Compression到所有項目。 MSBuild/AppX打包不知道在可移植庫和商店庫項目之間部署哪個二進制文件(它們具有不同的API版本&版本)。將軟件包安裝到應用程序中告訴它。

+0

大衛,謝謝! –

9

它看起來像這裏描述的解決方案的工作原理:http://cyanbyfuchsia.wordpress.com/2013/05/03/payload-contains-two-or-more-files-with-the-same-destination-path/

基本上,你必須設置在從主應用程序中引用的WinRT的項目「複製本地」設置爲false。

+0

我最終採取的方法是將NuGet包添加到主應用程序,然後確保對於所有引用的庫,在引用上將「複製本地」設置爲false。所以應用程序項目是包含這些文件的「主」。我也有警告告訴我要安裝Microsoft.Bcl.Build,但這樣做沒有幫助。 – RandomEngy

+0

我得到這個錯誤,因爲我的UnitTesting項目也有一個資產文件夾。由於單元測試不需要這些資源(徽標,圖標等),我只是刪除它們。 – WiteCastle

0

我也有這樣的問題。這是,因爲我在項目之間分享了我的一個解決方案。我不得不重新命名該解決方案,因爲名稱與其中一個項目完全相同。重命名後,我有這個問題。

固定的是:右鍵點擊解決方案我改名,並且使用了項目,然後選擇屬性,然後使用相同的名稱在集名稱像解決方案的名稱。

相關問題