SDK10.0.100使用中编译项目失败,具体信息在截图中提供

波· 刘 0 信誉分
2025-11-21T02:22:09.4066667+00:00

5e8589e463821c63aade277b93e68c6e

6e97e2458fd772b2d677bf55ec75a28d

Windows 开发 | Windows 应用 SDK
{count} 票

1 个答案

排序依据: 非常有帮助
  1. Danny Nguyen (WICLOUD CORPORATION) 5,240 信誉分 Microsoft 外部员工 仲裁人
    2025-11-21T04:32:17.3366667+00:00

    嗨,

    我在 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 无隶属关系):

    csc.exe exited with code -1073741819

    针对 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 的日构建试试看它是否能在你的机器上缓解这个问题。

你的答案

提问者可以将答案标记为“已接受”,版主可以将答案标记为“已推荐”,这有助于用户了解答案是否解决了提问者的问题。