Mic*_*ord 4 .net windows-store-apps visual-studio-2015 uwp windows-10-universal
我不确定是什么导致了这个错误,我已经研究了几个小时。我正在使用 Visual Studio 2015 更新 3。我正在构建一个将上传到商店的 Windows 10 通用 (UWP) 应用程序。我已经有我的开发中心帐户,它与我的应用程序相关联。最后,当我右键单击项目并选择商店> 创建应用程序包时,我收到此错误:
错误 80080204:文件名为“PacTracMobile.Windows10_1.3.0.0_ARM.appx”和包全名为“OdenIndustriesInc.9510B3DEAC6_1.3.0.0_arm__bdbevzbp0ydz4”的包在包中无效,因为包TracPac也包含包.Windows10_1.3.0.0_x86.appx”和包全名“OdenIndustriesInc.9510B3DEAC6_1.3.0.0_arm__bdbevzbp0ydz4”适用于相同的处理器架构。捆绑包不能包含用于同一处理器架构的多个应用程序包,或具有任何特定于架构的应用程序包的架构中立应用程序包。
此错误与记录的文件 MakeAppx 有关。我正在尝试构建 x86、x64 和 ARM。当我在调试时,我可以很好地构建、部署和测试,没有错误。但是,当我选择构建我的应用程序包时,我得到了这个。
请注意,Visual Studio 处于发布模式,任何 CPU。也就是说,当我选择创建应用程序包时,在第一个弹出窗口中,我选择在发布中构建每三个平台。我的屏幕看起来像这样:
当我单击创建时,它开始构建,最终出现上述错误。
有什么想法吗?
谢谢!!!
编辑 - 作为记录,我上面显示的屏幕截图是我从 Microsoft 的这些说明中获得的。我已经并且正在完全遵循这些说明!MSDN 构建 UWP 应用
更新 - 如果在上面屏幕截图的窗口中,我取消选择 x84 和 x64(这并不理想,因为我想要所有三个)并且只执行 ARM,我不会收到任何错误并且程序包完成。根据一些阅读,我怀疑如果我一个一个地执行(即,只选择 x86 再次运行),它会构建得很好,但我将剩下三个应用程序包,而不是一个。因此,这似乎与尝试一次构建所有三个并将其打包成一个包有关,这正是错误所逃避的原因,但同样,该错误或我在网上阅读的任何内容都解释了如何解决该问题。
在对这个问题进行了大量故障排除之后,我不得不让 MS 支持人员解决这个问题。问题的根本原因是以前的架构之一正在构建后一个,因此在构建后一个时,它失败了,因为它已经由前一个构建了。
换句话说,您将在上面的屏幕截图中看到我选中了构建所有三个(x86、x64 和 ARM)的框。我们发现 x86 实际上是在构建 ARM。因此,当 ARM 开始构建时,它抛出错误,因为包已经构建。
现在对于解决方案,MS 支持帮助识别 VS 的错误以及它如何处理您的 .csproj 文件。我们确认在我的情况下以及在新项目中重现的 MS 支持,.csproj 文件可能与配置管理器下 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>
Run Code Online (Sandbox Code Playgroud)
请注意,
<PlatformTarget>x86</PlatformTarget>
Run Code Online (Sandbox Code Playgroud)
匹配配置。之前,即使配置项是针对 x86 的,这也表示 ARM
| 归档时间: |
|
| 查看次数: |
2358 次 |
| 最近记录: |