我不知道是什么导致了这个错误,我已经研究了好几个小时了。我正在使用Visual 2015更新3。我正在构建一个Windows 10通用(UWP)应用程序,将上传到商店。我已经有了我的开发中心帐户,它与我的应用程序相关。最后,当我右键单击项目并选择store > create应用程序包时,我会得到以下错误:
错误80080204:文件名“"OdenIndustriesInc.9510B3DEAC6_1.3.0.0_arm__bdbevzbp0ydz4”“和包全名"OdenIndustriesInc.9510B3DEAC6_1.3.0.0_arm__bdbevzbp0ydz4”的包在包中无效,因为包还包含文件名为"PacTracMobile.Windows10_1.3.0.0_x86.appx“和包全名”OdenIndustriesInc.9510B3DEAC6_1.3.0.0_arm__bdbevzbp0ydz4“的包,它们适用于相同的处理器体系结构。包不能包含同一处理器体系结构的多个应用程序包,也不能包含任何特定于体系结构的应用程序包的体系结构中立的应用程序包。
此错误与记录的文件MakeAppx有关。我正在尝试构建x86、x64和ARM。在调试过程中,我可以构建、部署和测试,没有任何错误。然而,当我选择构建我的应用程序包时,我得到了这个。
注意,Visual处于发布模式,任何CPU。也就是说,当我选择创建应用程序包时,在第一个弹出窗口中,我选择了在发布时构建每三个平台。我的屏幕看起来就像这样:

当我单击create时,它开始构建,最终,我得到了上面的错误。
有什么想法吗?
谢谢!
编辑-为了记录,我上面显示的屏幕截图,我是从微软的这些说明中得到的。我已经并且正在严格遵循这些指令!MSDN大楼UWP应用程序
更新-如果在上面截图的窗口中,我取消了选择x84和x64 (这并不理想,因为我想要这三个),只需执行ARM,我就不会得到任何错误并完成包。根据一些阅读,我怀疑,如果我一个接一个地运行(即,再次运行,只选择x86 ),它将构建良好,但我将留下三个应用程序包,而不是全部在一个。因此,这似乎与尝试一次构建这三个包并将其打包成一个包有关--这是错误所要避免的--但是,这个错误和我在网上读到的任何东西都解释了如何解决这个问题。
发布于 2017-02-02 02:43:36
在对这个问题进行了大量的故障排除之后,我不得不让MS支持来解决这个问题。这个问题的根本原因是,以前的一个体系结构是构建后一个体系结构,所以在构建后一个体系结构时,它失败了,因为它已经由前一个架构构建了。
换句话说,您将在上面的屏幕截图中看到,我选中了这些框来构建所有的三个(x86、x64和ARM)。我们发现x86实际上是在建造手臂。所以,当ARM开始构建时,它抛出了错误,因为包已经构建好了。
现在,对于解决方案,MS支持帮助识别VS的bug,以及它如何处理您的.csproj文件。在我的例子中,我们都证实了在一个新项目上复制的MS支持,即.csproj文件可能与配置管理器下的UI中显示的内容不同步。换句话说,我在VS中的配置管理器显示,x86实际上是针对x86...or的,所以它应该这样做。但是,当我们在记事本中打开.csproj文件时,我们发现x86实际上被设置为ARM。
我们还注意到,重新启动VS不会同步它们,也不会物理地将配置管理器更改为ARM,然后返回到x86。这就好像它失去了同步,然后不再试图更新它。
因此,唯一的解决办法是手动更正/编辑我的.csproj文件,以显示正确的体系结构。一旦我做了这件事,一切都很好。
这就是您想要在csproj文件中查找的内容。
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</PropertyGroup>注意,
<PlatformTarget>x86</PlatformTarget>匹配配置。在此之前,尽管配置项是用于x86的,但这表示ARM
发布于 2018-09-11 10:24:35
当生成具有多个体系结构的包时,它们必须具有相同的编译配置。例如,如果版本x64具有“使用.NET本地工具链进行编译”,那么发布x86也必须具有标志。或者为每个体系结构生成一个包。
发布于 2017-01-12 09:19:22
冲突可能是进程以前创建的包造成的。您可以尝试将版本号提高到1.4.0.0,然后再试一次。
如果问题仍然存在,您可以创建三个单独的包包来检查不同的体系结构。只需在仪表板中将所有appxbundle上传到您提交的包部分即可。
这个问题曾经被报道过这里,它是固定关闭的。
https://stackoverflow.com/questions/41605000
复制相似问题