嗨,
我在 Windows 11 上使用 SDK 10.0.100 进行测试,新建的 ASP.NET Core 项目可以正常编译并运行,所以 SDK 本身并不是在所有环境下都会出问题。不过,最近确实有不少 Windows 10 + SDK 10.0.100 的反馈,遇到和你一样的 csc.exe 崩溃,因此这看起来是一个真实存在、且与环境相关的问题。
退出码 -1073741819 对应的是 0xC0000005,也就是一个访问冲突(access violation)。这通常意味着某些本机代码(比如编译器或运行时)崩溃了,而不是普通的 C# 编译错误。之前已经有一些 csc.exe 以这个错误码退出的案例,例如这个 Stack Overflow 线程(社区问答网站,与 Microsoft 无隶属关系):
针对 Windows 10 + .NET SDK 10.0.100 这一特定组合,.NET 团队已经将其记录为一个已知问题:
- Issue: dotnet/runtime#121596 – “csc.exe crashes with exit code -1073741819 (0xC0000005) with .NET SDK 10.0.100 on Windows 10 (VS 2026)”
- 修复 PR: dotnet/runtime#121602 – “Fix access violation when reporting fatal errors during startup”
这个 GitHub issue 已经关闭,是因为修复补丁已经合并进 runtime 仓库,但这并不会回溯性地修改已经发布的 10.0.100(包括 11 月 11 日的正式版 GA)。这个修复有可能会被包含在后续的 .NET 10 SDK / Runtime 版本中,但具体何时、以哪一个版本发布,要看 .NET 团队的后续服务计划。
此外,在官方的 builds table 中,还可以看到更新的 10.0.2xx / RC3 级别的日构建 SDK。这些是内部试用 / 日构建版本,理论上有可能已经包含了上述 runtime 修复,不过我个人还没有验证过哪一个具体的 10.0.2xx 构建一定能解决这个崩溃。如果你愿意尝试非最终发布版本,可以把 10.0.2xx 的日构建当成一个实验性选项;否则,我会更建议先使用下面这些变通办法,等待官方发布包含修复的 10.0.x SDK。
另外,Windows 的补丁状态似乎也会影响这个问题。在 GitHub 讨论中,有用户发现:
- 他们的
dotnet --info显示的是比较旧的 OS Version, - Windows Update 实际上没有完全更新好(即使界面上显示“已是最新”),
- 修复 Windows Update 并拉取、安装所有待定更新之后,
csc.exe的崩溃就消失了。
综合来看:
- 这个崩溃在 Windows 10 + SDK 10.0.100 上已经被确认是一个已知 bug,
- 上游源码中已经合并了修复,
- 在部分案例中,把 Windows 完全更新到最新版本之后,也可以消除这个崩溃,
所以目前比较实际的应对方式是:
- 首先,确认 Windows 自身已经完全打上最新补丁;
- 如果问题仍然可以复现,可以通过
global.json把项目 临时固定到 SDK 9.0.30*(例如 9.0.307)上; - 之后,再升级到包含该修复的 .NET SDK 版本(当官方发布相关版本后),或者如果你愿意试用实验性构建,也可以从 builds table 里选一个 10.0.2xx 的日构建试试看它是否能在你的机器上缓解这个问题。