2013-08-22 23 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

我也有这样的问题。这是,因为我在项目之间分享了我的一个解决方案。我不得不重新命名该解决方案,因为名称与其中一个项目完全相同。重命名后,我有这个问题。

固定的是:右键点击解决方案我改名,并且使用了项目,然后选择属性,然后使用相同的名称在集名称像解决方案的名称。

相关问题