我不确定导致此错误的是什么,我已经研究了几个小时。我正在使用Visual Studio 2015 Update 3.我正在构建一个将上传到商店的Windows 10 Universal(UWP)应用程序。我已经拥有了我的开发中心帐户,它与我的应用程序相关联。最后,当我右键单击项目并选择商店>创建应用程序包我收到此错误:
错误80080204:包含文件名" PacTracMobile.Windows10_1.3.0.0_ARM.appx"并打包全名" 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 Studio处于发布模式,任何CPU。也就是说,当我选择创建应用程序包时,在第一个弹出窗口中,我已经选择在发布中构建每个三个平台。我的屏幕看起来像这样:
当我点击创建时,它开始构建,最终,我得到上面的错误。
有什么想法吗?
感谢!!!
编辑 - 为了记录,我在上面显示的屏幕截图,我从微软的这些说明中得到了。我已经并且正在完全遵循这些说明! MSDN Building UWP apps
UPDATE-如果,在上面的屏幕截图中的窗口中,我取消选择x84和x64(这是不理想的,因为我想要全部三个)并且只做ARM,我没有得到任何错误和包完成。基于一些阅读,我怀疑,如果我一个接一个地做(即,只选择x86再次运行),它将构建正常,但我将留下三个应用程序包而不是一体化。所以,这似乎与尝试同时构建所有三个并打包成一个捆绑包有关,这就是错误所能解决的问题,但同样,错误或我在网上阅读的任何内容都解释了如何解决问题。
答案 0 :(得分:3)
在对这个问题进行了大量的故障排除之后,我不得不让MS支持来解决这个问题。问题的根本原因在于,之前的架构之一正在构建后者,因此在构建后者时,它失败了,因为它已经由前者构建。
换句话说,您将在上面的屏幕截图中看到我已选中框以构建所有三个(x86,x64和ARM)。我们发现x86实际上是在构建ARM。因此,当ARM进行构建时,它会抛出错误,因为已经构建了包。
现在,对于解决方案,MS支持帮助识别VS的错误以及它如何处理.csproj文件。在我的案例中,我们确认了在新项目中再现的MS支持,.csproj文件可能与Configuration Manager下的UI中显示的内容不同步。换句话说,我在VS中的配置管理器显示x86实际上是针对x86 ......或者应该有。但是,当我们在记事本中打开.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答案 1 :(得分:1)
冲突可能来自之前创建的进程包。您可以尝试将版本号增加到1.4.0.0,然后重试。
如果问题仍然存在,您可以创建3个单独的包捆绑包来检查不同的体系结构。只需将所有appxbundle上传到您在Dashboard中提交的包部分。
此问题曾被报道here,该问题已被修复。
答案 2 :(得分:0)
生成具有多种体系结构的软件包时,它们必须具有一些相同的编译配置。例如,如果版本x64具有“使用.NET本机工具链编译”,则版本x86还必须具有该标志。或为每种架构生成一个包。