You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacBook M1 Max上.NET Core 3.1项目dotnet watch run重启时Rosetta报错

问题描述

在MacBook Pro M1 Max上运行.NET Core 3.1项目,使用Docker部署azure-sql-edge镜像作为MS SQL数据库。初次执行dotnet watch run时一切正常,但在Visual Studio中保存代码后,dotnet watch run重启时出现以下错误:

rosetta error: /var/db/oah/0cbcd548c398ac044cf47633c4e5aa068c1a0416a18ad1861a768ac56fd1d33b/68b61c75aa9514f21db1470814e91bac8c95ea1a32f4e42fc88601dc4eeac1fc/Project.aot: attachment of code signature supplement failed: 1

同时dotnet watch提示:

dotnet watch ❌ Exited with error code 133
问题成因
  • Rosetta 2代码签名验证异常:M1 Max为ARM架构芯片,.NET Core 3.1无原生ARM64支持,运行依赖Rosetta 2转译x86_64代码。dotnet watch重启项目时生成的AOT临时文件(Project.aot)在签名补充环节触发Rosetta 2的兼容性bug,导致签名验证失败。
  • .NET Core 3.1对Apple Silicon的适配缺失:.NET Core 3.1发布早于Apple Silicon芯片,官方未针对该架构做适配优化。通过Rosetta 2转译运行时,涉及临时文件生成、缓存的场景(如热重载)容易触发底层兼容性问题。
  • 热重载机制与转译层的冲突:dotnet watch的热重载会重新编译生成临时执行文件,在Rosetta 2环境下,新生成文件的签名无法被系统正确识别,最终触发进程终止,返回错误码133(该错误码通常表示进程因权限或系统兼容性问题被强制终止)。

内容的提问来源于stack exchange,提问作者Piet Sikkema

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 13:01:43