2013-08-22 29 views
10
  1. Utwórz nowy Windows 8 aplikacji App1
  2. Dodaj ClassLibrary1 projekt systemu Windows biblioteki 8 klasy do rozwiązania
  3. Dodaj PortableClassLibrary1 przenośny klasy biblioteki kierowania Windows 8 i Windows Phone 7.5 do roztworu
  4. referencyjny HttpClient pakietu Nuget w ClassLibrary1
  5. referencyjny pakiet HttpClient Nuget w PortableClassLibrary1
  6. odniesienia zarówno rozwiązanie ClassLibrary1 i PortableClassLibrary1
  7. kompilacji

Otrzymasz błąd na etapie .appx pakietuNuget, przenośna biblioteka i WinRT appx: Ładunek zawiera dwa lub więcej plików o tej samej ścieżce docelowej

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 

Uwaga ten sam błąd jest odtwarzany, jeśli odwołać się do dowolnego pakietu Nuget m.in. zarówno win8, jak i przenośne zestawienia złożeń.

Czego oczekuje: NajdokĹ,adniejsza wersja biblioteki (Win8 jeden) jest pakowany w .appx i przenośna wersja jest ignorowany

Wszelkie pomysły, w jaki sposób oszukać Appx Packager i budować tego rodzaju projektów Windows 8?

Odpowiedz

2

Poza tym, należy być coraz ostrzeżenia podobne do:

wszystkich projektów odwołujących ClassLibrary1.csproj musi zainstalować Nuget pakiet Microsoft.Bcl.Build. Aby uzyskać więcej informacji, zobacz http://go.microsoft.com/fwlink/?LinkID=317569.

Wskazuje to na problem. Zasadniczo, w skrócie, powinieneś instalować HttpClient.Compression we wszystkich projektach. Pakiety MSBuild/AppX nie wiedzą, który plik binarny należy wdrożyć między biblioteką przenośną a biblioteką sklepu (mają różne wersje interfejsów API &). Instaluje pakiet w aplikacji, mówi to.

+0

David, dziękuję! –

9

Wygląda na to rozwiązanie opisane tutaj działa: http://cyanbyfuchsia.wordpress.com/2013/05/03/payload-contains-two-or-more-files-with-the-same-destination-path/

Zasadniczo trzeba ustawić „Kopiuj lokalna” false w projekcie WinRT że jest odwołanie od głównej aplikacji.

+0

Podejście, które podjąłem, polegało na dodaniu pakietu NuGet do głównej aplikacji, a następnie upewnieniu się, że dla wszystkich przywoływanych bibliotek, "Kopiuj lokalnie" ustawiono na wartość false w odniesieniu do referencji.Zatem projekt aplikacji jest "mistrzem" dołączania tych plików. Też miałem ostrzeżenia nakazujące mi zainstalować Microsoft.Bcl.Build, ale to nie pomogło. – RandomEngy

+0

Otrzymałem ten błąd, ponieważ mój projekt UnitTesting ma również folder Zasoby. Ponieważ testy jednostkowe nie wymagają tych zasobów (logo, ikony itp.), Właśnie je usunąłem. – WiteCastle

0

Miałem taki problem zbyt. To było ponieważ Udostępniłem jedno z moich rozwiązań między projektami. Musiałem zmienić nazwę rozwiązania, ponieważ nazwa była taka sama jak jeden z projektów. Po zmianie nazwy miałem ten problem.

I stałe go: kliknij prawym przyciskiem roztworu I przemianowany i wykorzystywane zarówno projekty, następnie Właściwości, a następnie użyć tej samej nazwy w montaż wymienić jak nazwa rozwiązania.