Skip to content

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

Description

@hss-ai

[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

{
  "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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions