如何配置Visual Studio 2019 Pro,使其在存在TypeScript或Razor/CSHTML错误时像处理C#编译错误一样停止启动调试会话
我刚好遇到过一模一样的问题,给你分享下亲测有效的解决步骤,完全适配Visual Studio 2019 Pro的非.NET Core ASP.NET MVC项目:
针对Razor/CSHTML错误的解决方案
默认情况下,Razor视图的编译是延迟到运行时才进行的,所以即便有语法错误,按F5还是会启动调试。要让这些错误在构建阶段就被检测到并阻止调试,你需要修改项目文件:
- 右键项目 → 选择「卸载项目」
- 右键已卸载的项目 → 选择「编辑 [你的项目名].csproj」
- 在
<PropertyGroup>节点里添加以下配置:<MvcBuildViews>true</MvcBuildViews> <EnableRazorCompileOnBuild>true</EnableRazorCompileOnBuild> - 保存文件后,右键项目 → 选择「重新加载项目」
这样设置后,每次构建时都会提前编译所有Razor视图,一旦发现错误就会终止构建,自然也就不会启动调试了。
针对TypeScript错误的解决方案
默认TypeScript的编译错误不会被当作阻止构建的“致命错误”,所以需要调整两处设置:
- 修改TypeScript配置文件
- 找到项目根目录下的
tsconfig.json,确保compilerOptions里包含这一项:
这个配置的作用是:只要有TypeScript错误,就不会生成编译后的JS文件。"compilerOptions": { "noEmitOnError": true, // 保留你原本的其他配置 }
- 找到项目根目录下的
- 让Visual Studio把TypeScript错误视为构建错误
- 右键项目 → 选择「属性」
- 切换到「生成」选项卡,找到「TypeScript编译」区域
- 勾选「将TypeScript错误视为构建错误」选项(如果没看到这个选项,也可以直接修改项目文件)
- 或者直接编辑
.csproj文件,在<PropertyGroup>中添加:<TypeScriptCompileBlocked>false</TypeScriptCompileBlocked> <TypeScriptNoEmitOnError>true</TypeScriptNoEmitOnError>
做完以上所有设置后,再按F5调试时,Visual Studio就会像对待C#编译错误一样,只要检测到Razor/CSHTML或TypeScript的错误,就会立刻停止构建,不会启动调试进程。
内容的提问来源于stack exchange,提问作者Aliq Qim
相关产品推荐
相关产品推荐

