10
  1. Créer nouvelle application Windows 8 App1
  2. Ajouter ClassLibrary1 projet de bibliothèque Windows 8 classe à la solution
  3. Ajouter PortableClassLibrary1 bibliothèque de classe portable ciblant Windows 8 et Windows Phone 7.5 à une solution
  4. Référence HttpClient paquet NuGet dans ClassLibrary1
  5. Référence HttpClient package NuGet à 0.123.
  6. Référence à la fois ClassLibrary1 et PortableClassLibrary1
  7. Compile solution

vous obtenez une erreur à .appx stade de packageNuget, bibliothèque portable et WinRT appx: Payload contient deux ou plusieurs fichiers avec le même chemin de destination

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 

S'il vous plaît noter que la même erreur est reproduite si vous faites référence à un paquet de NuGet avec win8 et les assemblages portables d'assemblages.

Ce qui est attendu: version la plus spécifique d'une bibliothèque (Win8 un) est emballé dans .appx et version portable est ignorée

Toutes les idées sur la façon de tricher et de construire appx emballeur ce genre de projets Windows 8?

Répondre

2

En plus de cela, vous devriez obtenir des avertissements similaires à:

Tous les projets de référencement ClassLibrary1.csproj doit installer le paquet NuGet Microsoft.Bcl.Build. Pour plus d'informations, voir http://go.microsoft.com/fwlink/?LinkID=317569.

Ceci indique un problème. Fondamentalement, le court de celui-ci, vous devriez installer HttpClient.Compression dans tous les projets. L'empaquetage MSBuild/AppX ne sait pas quel binaire doit être déployé entre la bibliothèque portable et le projet de bibliothèque de magasins (ils ont différentes versions d'API &). L'installation du paquet dans l'application, le dit.

+0

David, merci! –

9

On dirait que la solution décrite ici fonctionne: http://cyanbyfuchsia.wordpress.com/2013/05/03/payload-contains-two-or-more-files-with-the-same-destination-path/

Fondamentalement, vous devez définir « Copie locale » false dans le projet WinRT qui est référencé à partir de l'application principale.

+0

L'approche que j'ai fini par prendre était d'ajouter le paquet NuGet à l'application principale, puis assurez-vous que pour toutes les bibliothèques référencées, "Copier local" a été mis à false sur les références.Le projet d'application est donc le "maître" de l'inclusion de ces fichiers. J'ai également eu des avertissements me disant d'installer Microsoft.Bcl.Build, mais cela n'a pas aidé. – RandomEngy

+0

Je recevais cette erreur parce que mon projet UnitTesting a également un dossier Assets. Puisque les tests unitaires n'ont pas besoin de ces actifs (logos, icônes, etc.), je les ai simplement supprimés. – WiteCastle

0

J'avais un tel numéro aussi. C'était parce que j'ai partagé une de ma solution entre les projets. J'ai dû renommer la solution, parce que le nom était tout de même comme l'un des projets. Après avoir renommé j'ai eu ce problème.

Je fixé par: faites un clic droit sur la solution que je rebaptisés et utilisé les deux projets, puis propriétés, utilisez le même nom dans le nom d'assembly comme nom de la solution.

Questions connexes