由于 "AMD64" 处理器不匹配,无法在 MSIX 中发布 WPF
Unable to publish WPF in MSIX due to "AMD64" processor mismatch
我目前在使用 Windows 应用程序打包项目 (WAPP) 打包时遇到更多问题。
我希望将我的 WPF 应用程序打包成与 32 位和 64 位系统兼容的应用程序包。在我自己的应用程序中,我添加了 WAPP 并根据此 Microsoft Docs article 引用它,同时在项目属性中进行初始设置,并使用配置管理器为我的 WPF 项目进行 x64 和 x86 配置。
调试WAPP正常运行没有问题。当我转向发布时,我将其设置为侧载,select 签名并选择捆绑 Release x64 和 x86 配置。
在发布过程中,x86 构建首先运行没有问题,但是在执行 x64 部分时我遇到了这个错误:
There was a mismatch between the processor architecture of the project being built "AMD64" and the processor architecture of the reference "C:\Users\UserFolder\Documents\InstallerDemoSourceCode\WPFDemoApp\bin\x86\Debug\netcoreapp3.1\win-x86\WPFDemoApp.dll", "x86". This mismatch may cause runtime failures.
我花了一段时间制作新的 WPF 项目并使用 MSIX 下载其他 WPF 项目的示例并尝试发布,但都以相同的错误结束,这似乎表明 VS 或我的 PC 存在问题。
我什至尝试使用此 helpful video 中未更改的项目,在那里他能够完全按照我想要的方式构建它,但由于此错误而无法执行相同的操作。
但是,我确实在 x64 构建输出中注意到构建使用的是我的 x86 对象而不是 x64。您甚至可以在错误中看到它引用的 DLL 在 x86 文件夹中。这可能是一个错误吗?
任何线索都是无价的
更新#1:
为了响应 @JonasH 的建议,我尝试以 AnyCPU 模式发布应用程序,但收到了另一个错误:
There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "C:\Users\jacob\OneDrive\Documents\InstallerDemoSourceCode\WPFDemoApp\bin\x86\Debug\netcoreapp3.1\win-x86\WPFDemoApp.dll", "x86". This mismatch may cause runtime failures.
所以我能够通过在配置管理器中重新选择配置来解决这个问题。即 Select Any CPU 配置文件重新选择所有项目构建配置文件作为 Any CPU,冲洗并重复 x64 和 x86。这不知何故奏效了?
我仍然无法发布为 Any CPU,但有关将桌面应用程序(WinForms、WPF 等)发布到 Any CPU 的所有信息表明您需要明确使用 x86 和 x64相反,因为该选项似乎只适用于 UWP。
我目前在使用 Windows 应用程序打包项目 (WAPP) 打包时遇到更多问题。
我希望将我的 WPF 应用程序打包成与 32 位和 64 位系统兼容的应用程序包。在我自己的应用程序中,我添加了 WAPP 并根据此 Microsoft Docs article 引用它,同时在项目属性中进行初始设置,并使用配置管理器为我的 WPF 项目进行 x64 和 x86 配置。
调试WAPP正常运行没有问题。当我转向发布时,我将其设置为侧载,select 签名并选择捆绑 Release x64 和 x86 配置。 在发布过程中,x86 构建首先运行没有问题,但是在执行 x64 部分时我遇到了这个错误:
There was a mismatch between the processor architecture of the project being built "AMD64" and the processor architecture of the reference "C:\Users\UserFolder\Documents\InstallerDemoSourceCode\WPFDemoApp\bin\x86\Debug\netcoreapp3.1\win-x86\WPFDemoApp.dll", "x86". This mismatch may cause runtime failures.
我花了一段时间制作新的 WPF 项目并使用 MSIX 下载其他 WPF 项目的示例并尝试发布,但都以相同的错误结束,这似乎表明 VS 或我的 PC 存在问题。
我什至尝试使用此 helpful video 中未更改的项目,在那里他能够完全按照我想要的方式构建它,但由于此错误而无法执行相同的操作。
但是,我确实在 x64 构建输出中注意到构建使用的是我的 x86 对象而不是 x64。您甚至可以在错误中看到它引用的 DLL 在 x86 文件夹中。这可能是一个错误吗?
任何线索都是无价的
更新#1: 为了响应 @JonasH 的建议,我尝试以 AnyCPU 模式发布应用程序,但收到了另一个错误:
There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "C:\Users\jacob\OneDrive\Documents\InstallerDemoSourceCode\WPFDemoApp\bin\x86\Debug\netcoreapp3.1\win-x86\WPFDemoApp.dll", "x86". This mismatch may cause runtime failures.
所以我能够通过在配置管理器中重新选择配置来解决这个问题。即 Select Any CPU 配置文件重新选择所有项目构建配置文件作为 Any CPU,冲洗并重复 x64 和 x86。这不知何故奏效了?
我仍然无法发布为 Any CPU,但有关将桌面应用程序(WinForms、WPF 等)发布到 Any CPU 的所有信息表明您需要明确使用 x86 和 x64相反,因为该选项似乎只适用于 UWP。