跳到主要内容

运行时

更新日期:2025-04-11

Z# 内置 CoreCLRMono 两种 .NET 运行时。

默认情况下,CoreCLR 在 Windows/Linux 平台的发布版本(包括客户端和服务器)中使用,对新特性有最好的支持,且有更高的运行效率和稳定性; Mono 在编辑器和不支持 CoreCLR 的平台的发布版本中使用。 目前,没有支持 AOT 编译的计划——如果平台不支持 JIT,则使用 Mono 的解释模式执行托管代码。

在开发环境下默认使用 Mono,因为你很可能需要用到 Mono Debugger。 这款调试器的体验比 .NET 调试器要好一些,主要是可以与 LLDB 同时使用。

你可以修改构建脚本 Dotnet.build.cs 来调整这些预设

public class Dotnet : ModuleRules
{
public Dotnet(ReadOnlyTargetRules Target) : base(Target)
{
...
const bool FORCE_USE_MONO = false;
const bool USE_MONO_FOR_EDITOR_BUILD = false; // true;
...
}
}
注意

目前发现在使用 Mono 时连续调用生成代码的命令会导致崩溃,但其他热重载场景都没发现问题。 推测是 Mono 本身对 ALC 的某些方面支持不完善导致的,我们目前还没有精力深入排查,可以在生成代码后重启编辑器绕过。