App1
ClassLibrary1
Windows 8类库项目添加到解决方案PortableClassLibrary1
可移植类库添加到解决方案HttpClient
中引用ClassLibrary1
nuget包HttpClient
中引用PortableClassLibrary1
nuget包ClassLibrary1
和PortableClassLibrary1
您在.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和可移植程序集混合功能的nuget程序包,则会重现相同的错误。
预期结果:
库的最特定版本(win8一个)打包为.appx,可移植版本将被忽略
关于如何欺骗appx打包程序并构建此类Windows 8项目的任何想法?
最佳答案
除此之外,您还将收到类似于以下内容的警告:
All projects referencing ClassLibrary1.csproj must install nuget package Microsoft.Bcl.Build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317569.
这表明存在问题。简而言之,基本上,应该将HttpClient.Compression安装到所有项目中。 MSBuild/AppX打包不知道要在便携式库和存储库项目之间部署哪个二进制文件(它们具有不同的API和版本)。告诉安装包到应用程序。
关于windows-8 - Nuget,可移植库和WinRT appx : Payload contains two or more files with the same destination path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18377876/