.NET 运行时依赖|为什么 0.1.549 之后启动不了
从哪个版本开始要求 .NET 8
官方安装页明确写了:
From version 0.1.549 onwards, the application will not start if the .NET 8 runtime is not installed.
更晚的版本(如 0.1.569+、0.1.57x+)还可能要求 .NET 10 Runtime——具体版本看官方最新 Release Notes。
该装哪个 .NET 包
Windows 用户:下载 .NET 8 Desktop Runtime(不是 ASP.NET Core Runtime,也不是 SDK)。去微软 .NET 下载页,找 8.0 下的 "Desktop Runtime",下载 .exe 安装包双击即可。
- .NET 8 Desktop Runtime(Windows):包含 WPF、WinForms 等桌面依赖,OpenUtau 用 Avalonia UI(跨平台桌面框架),底层仍需 .NET Desktop Runtime
- .NET 8 Runtime(纯控制台):Windows 上别装这个,缺桌面组件 OpenUtau 启动不了
- .NET 10 Runtime:如果 OpenUtau 最新版切到 .NET 10,也需要 Desktop Runtime 包
macOS 用户:下载 .NET 8 Runtime(macOS 没有 Desktop Runtime 之分)。
Linux 用户:下载 .NET 8 Runtime(或用包管理器装,见 Linux 安装)。
Diffsingerpack 和 .NET 的关系
diffsingerpack 版本只是把 nsf_hifigan vocoder 内置了——省去你单独下载 vocoder 再拖进窗口这一步。.NET 运行时无论哪个版本都需要单独安装,它不会随 OpenUtau 的 zip / dmg 打包在一起。
换句话说:diffsingerpack ≠ 免 .NET。它只是省去 vocoder 的事。
安装步骤
Windows
- 打开微软 .NET 8 下载页
- 找到 "Runtime" 区域下的 Desktop 标签
- 下载
.exe安装包(x64 / x86 / arm64 选对应自己系统的) - 双击安装,一路下一步
- 安装完不用重启电脑——关掉 OpenUtau 再开一次即可生效
安装完在 PowerShell 验证:
dotnet --list-runtimes
应该能看到一个 Microsoft.WindowsDesktop.App 8.x.x [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] 条目。如果列表里只有 Microsoft.NETCore.App 没有 WindowsDesktop.App,说明装错了——卸掉重下 Desktop Runtime。
macOS
brew install --cask dotnet-sdk # 这是装 SDK,同时包含 Runtime
或者手动下载 .pkg 安装包双击。
验证:
dotnet --list-runtimes
常见坑
坑一:装了 SDK 但没装 Desktop Runtime
有些人看到"装 .NET"就去装 SDK(开发者工具包),但 SDK 自带的 Runtime 在 Windows 上可能不包含桌面组件。稳妥做法:单独装一份 Desktop Runtime,它很小(几十 MB),和 SDK 不冲突。
坑二:多个 .NET 版本共存
机器上同时装了 .NET 6、.NET 7、.NET 8 没问题——OpenUtau 会自己找 8.x 版本。不需要卸旧版本。
坑三:企业电脑被组策略禁用 .NET 安装
某些公司电脑的组策略禁止装 .NET Runtime,或者已经预装了但版本过旧。这种情况只能:
- 联系 IT 部门装 .NET 8
- 或者换个人电脑跑 OpenUtau
OpenUtau 不支持"绿色免安装版"绕过 .NET 检查。