Windows 8 Nuget、portable library和WinRT appx:Payload包含两个或多个具有相同目标路径的文件 创建新的Windows 8应用程序App1 将ClassLibrary1Windows8类库项目添加到解决方案中 将针对Windows 8和Windows Phone 7.5的便携式类库添加到解决方案中 在ClassLibrary1 请在PortableClassLibrary1 参考ClassLibrary1和PortableClassLibrary1 编译解决方案

Windows 8 Nuget、portable library和WinRT appx:Payload包含两个或多个具有相同目标路径的文件 创建新的Windows 8应用程序App1 将ClassLibrary1Windows8类库项目添加到解决方案中 将针对Windows 8和Windows Phone 7.5的便携式类库添加到解决方案中 在ClassLibrary1 请在PortableClassLibrary1 参考ClassLibrary1和PortableClassLibrary1 编译解决方案,windows-8,windows-runtime,nuget,portable-class-library,appx,Windows 8,Windows Runtime,Nuget,Portable Class Library,Appx,在.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

在.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
请注意,如果您引用任何同时具有win8和portable程序集混合功能的nuget软件包,则会复制相同的错误

预期: 库的最特定版本(win8 one)打包到.appx中,而可移植版本被忽略


关于如何欺骗appx packager并构建此类Windows 8项目,您有什么想法吗?

这里介绍的解决方案似乎有效:


基本上,在从主应用程序引用的WinRT项目中,您必须将“Copy local”(复制本地)设置为false。

除此之外,您还应收到类似以下内容的警告:

所有引用ClassLibrary1.csproj的项目都必须安装nuget 包Microsoft.Bcl.Build。有关详细信息,请参阅


这表明存在问题。基本上,简而言之,您应该在所有项目中安装HttpClient.Compression。MSBuild/AppX打包不知道在可移植库和存储库项目之间部署哪个二进制文件(它们具有不同的API和版本)。将软件包安装到应用程序中,告诉它。

我也有这样的问题。这是因为我在项目之间共享了我的一个解决方案。我不得不重新命名这个解决方案,因为它的名字和其中一个项目的名字一样。重命名后,我遇到了这个问题


I修复了它:右键单击解决方案,我重命名并使用了两个项目,然后是属性,然后在程序集名称中使用相同的名称,就像解决方案名称一样。

我最终采取的方法是将NuGet包添加到主应用程序中,然后确保对所有引用的库,“复制本地”在引用上设置为false。因此,应用程序项目是包含这些文件的“主控”。我还收到警告,要求我安装Microsoft.Bcl.Build,但这样做没有帮助。我收到此错误是因为我的UnitTesting项目也有一个资产文件夹。由于单元测试不需要这些资源(徽标、图标等),我只是删除了它们。