运行时
更新日期:2025-04-11
Z# 内置 CoreCLR 和 Mono 两种 .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 的某些方面支持不完善导致的,我们目前还没有精力深入排查,可以在生成代码后重 启编辑器绕过。