获取 "You must install .NET Desktop Runtime 6.0.3 (x86)" 安装了正确的运行时

Getting "You must install .NET Desktop Runtime 6.0.3 (x86)" with correct runtime installed

在 Windows 资源管理器中双击 EXE 时,针对 .NET 6 构建的应用程序显示以下消息:

To run this application, you must install .NET Desktop Runtime 6.0.3 (x86)

此运行时 (6.0.3 x86) 已安装在计算机上。我已经使用 dotnet --info 命令确认了这一点:

我也尝试了 6.0.4 运行时,但这些也不起作用。

这发生在 Windows 10 机器上,但我也在 Windows 11 上测试过:

  1. 在 Hyper-V 中下载了 Windows 11 dev 虚拟机。
  2. 使用 Visual Studio 安装程序删除了 .NET 6。
  3. 从 Microsoft 的 Download .NET 6 页面安装 windowsdesktop-runtime-6.0.3-win-x86

您可以在 Hyper-V 中下载的 (Windows 10) MSIX 打包工具环境机器也会发生同样的情况。在此未安装 .NET 6。安装 windowsdesktop-runtime-6.0.3-win-x86.

后结果相同

将目标 CPU 选项(在项目属性 > 编译中)设置为任何 CPU 会产生类似的结果,要求我也安装了 .NET 桌面运行时 x64 版本。

构建过程生成:

  1. assembly_name.deps
  2. assembly_name.pdb
  3. assembly_name.runtimeconfig.json

我能够通过包含 runtimeconfig.json 文件来启动应用程序。

对于 .NET Framework 应用程序,可以简单地复制 EXE 和 DLL,但对于 .NET Core 应用程序,这似乎是不可能的。

更好的方法是使用发布功能,它可以将所有必需的文件正确地捆绑到一个 EXE 文件中以供分发。