编译Web应用时出现rzc discover退出码-2147450743错误的问题咨询
编译报错
rzc discover exited with code -2147450743 解决方案 问题现象
编译Web应用时触发上述错误,点击错误提示会自动定位到项目内的RazorTagHelperMSBuild任务配置节点,对应配置片段为:
<RazorTagHelper Debug="$(_RazorDebugTagHelperTask)" DebugTool="$(_RazorDebugTagHelperTool)" ToolAssembly="$(_RazorToolAssembly)" UseServer="$(UseRazorBuildServer)" ForceServer="$(_RazorForceBuildServer)" SuppressCurrentUserOnlyPipeOptions="$(_RazorSuppressCurrentUserOnlyPipeOptions)" PipeName="$(_RazorBuildServerPipeName)" Version="$(RazorLangVersion)" Configuration="@(ResolvedRazorConfiguration)" Extensions="@(ResolvedRazorExtension)" Assemblies="@(RazorReferencePath)" ProjectRoot="$(MSBuildProjectDirectory)" TagHelperManifest="$(_RazorTagHelperOutputCache)"> <Output TaskParameter="TagHelperManifest" ItemName="FileWrites"/> </RazorTagHelper>
已尝试过的无效修复操作:
- 将.NET Core升级至2.1版本
- 对VS2019执行安装修复
- 更新VS2019至最新正式版本
排查修复操作
- 临时禁用Razor后台编译服务
打开项目对应的.csproj文件,在全局<PropertyGroup>节点下新增配置项:
重新触发编译流程,若错误消失,说明崩溃来自残留的Razor后台编译进程、命名管道权限异常。手动关闭所有残留的<UseRazorBuildServer>false</UseRazorBuildServer>rzc.exe进程、清理%TEMP%目录下带rzc-前缀的临时残留文件后,可恢复原有后台编译配置。 - 清理损坏的编译中间产物与NuGet缓存
- 完全关闭所有VS2019实例
- 遍历解决方案目录,删除所有子文件夹下的
bin、obj编译输出目录 - 以管理员权限打开命令提示符,执行命令
dotnet nuget locals all --clear清空所有损坏的NuGet本地缓存 - 重新启动VS,触发NuGet包还原后重新执行编译
- 对齐Razor工具链版本
检查项目引用的Microsoft.AspNetCore.Razor.Design包版本,确保其和.NET Core 2.1运行时的版本号完全匹配,避免预览版、跨大版本不匹配的包导致rzc进程启动即崩溃。 - 排查目录权限异常
检查当前登录Windows的账户是否对项目存放目录、%TEMP%临时目录、%LOCALAPPDATA%\Microsoft\DotNet 目录拥有完全读写权限。企业域环境下若组策略限制了进程创建命名管道、写入临时文件的权限,就会触发上述退出码的崩溃。
内容的提问来源于stack exchange,提问作者Elmar Guevarra
相关产品推荐
相关产品推荐

