Mac M1上VS2022构建旧Razor项目遇rzc generate错误129
问题解答
1. 能否使用最新版Visual Studio构建这类项目?
可以,但需要补充安装对应版本的.NET SDK。VS2022 for Mac(17.4)默认搭载.NET 7 SDK,但你的旧Razor项目依赖.NET Core 3.x的Razor工具链,只要安装适配M1芯片的.NET Core 3.1 ARM64 SDK,就能让VS正常构建该项目。
2. rzc.dll缺失的原因是什么?
- 你的项目指定了
RazorLangVersion 3.0,对应的Razor编译工具rzc.dll属于.NET Core 3.x SDK的组件。 - 你当前的VS环境没有安装.NET Core 3.1 SDK(M1芯片需要专门的ARM64版本),导致VS构建时在缓存的Razor SDK目录中找不到该文件,触发
rzc generate exited with code 129错误。 - 项目引用的
Microsoft.AspNetCore.Components 3.1.9依赖.NET Core 3.1的运行时和工具链,进一步加剧了工具缺失的问题。
3. 是否需要迁移到net7.0?
不是必须,但迁移是更推荐的长期方案:
- 不迁移的临时解决办法:安装适配M1的.NET Core 3.1 ARM64 SDK,安装完成后VS会自动下载并缓存对应的Razor SDK工具链,重新构建项目即可正常运行。
- 迁移到net7.0的优势:.NET7是LTS长期支持版本,性能、安全性和新特性更优,VS2022对其原生支持更完善,不会再出现旧SDK缺失的问题;且.NET7兼容netstandard2.1,迁移后解决方案中其他依赖netstandard2.1的项目可以正常引用该Razor项目。
内容的提问来源于stack exchange,提问作者grandouassou
相关产品推荐
相关产品推荐

