[Bug] v3.4.2 Win GUI 缺失 runtimeconfig.json,启动时误提示需安装 .NET Desktop Runtime

Author: hss-aiCreated Jul 20, 2026Updated Jul 20, 2026

[Bug] v3.4.2 Win GUI 缺失 runtimeconfig.json,启动时误提示需安装 .NET Desktop Runtime

问题

v3.4.2 的 Windows GUI 压缩包(imewlconverter_win-x64.zip)解压后 gui/ 目录下的 深蓝词库转换.exe 双击无法启动,弹窗提示需要安装 .NET Desktop Runtime;但系统已安装 Microsoft.WindowsDesktop.App 10.0.10

根因

gui/ 目录里漏放了 GUI exe 自己的 runtimeconfig,只塞进了 CLI 的那份,文件名对不上:

gui/
├── 深蓝词库转换.exe                              ← framework-dependent,5.5 MB
├── ImeWlConverterCmd.runtimeconfig.json         ← 这是 CLI 的 config,主名对不上 GUI exe
├── ImeWlConverter.Abstractions.pdb
├── ImeWlConverter.Core.pdb
├── ImeWlConverter.Formats.pdb
└── Readme.txt

.NET apphost 启动时按「exe 主名 + .runtimeconfig.json」查找配置文件。深蓝词库转换.exe 找不到 深蓝词库转换.runtimeconfig.json,host 就 fallback 到"请安装对应 runtime"的提示——跟系统里装没装 runtime 无关,纯属配置缺失。

另外:exe 内嵌字符串确认依赖 Microsoft.WindowsDesktop.App(WPF/WinForms)+ net10,所以直接复制 CLI 那份 config 还不行——CLI 用的是 Microsoft.NETCore.App,framework 名必须改成 Microsoft.WindowsDesktop.App

复现

  1. 安装 .NET Desktop Runtime 10.0.10(x64)
  2. 解压 imewlconverter_win-x64.zip
  3. 双击 gui\深蓝词库转换.exe
  4. 弹窗:"请安装 .NET Desktop Runtime"

期望

GUI 双击即可启动。

临时绕过(已验证可用)

gui/ 目录下手动新建 深蓝词库转换.runtimeconfig.json

json
{
  "runtimeOptions": {
    "tfm": "net10.0",
    "framework": {
      "name": "Microsoft.WindowsDesktop.App",
      "version": "10.0.0"
    },
    "configProperties": {
      "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
      "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
    }
  }
}

加上后 GUI 立即可启动。

修复建议

排查打包脚本(GitHub Actions workflow / csproj PublishDir),确保 GUI 发布目录里两个文件都进去:

  1. <GUIExeName>.runtimeconfig.json(framework = Microsoft.WindowsDesktop.App
  2. ImeWlConverterCmd.runtimeconfig.json(framework = Microsoft.NETCore.App,CLI 用)

很可能是 publish 时把 GUI 的 runtimeconfig 覆盖/漏拷了。

环境

  • 版本:v3.4.2(imewlconverter_win-x64.zip
  • 系统:Windows 10/11 x64
  • 已装 runtime:Microsoft.WindowsDesktop.App 10.0.10Microsoft.NETCore.App 10.0.10