dotnet build失败但Visual Studio 2022仍可运行项目,如何对齐Rider行为?
解决Visual Studio 2022在构建失败时仍启动项目的问题
当前配置
.editorconfig规则
[*.cs] csharp_style_namespace_declarations = file_scoped:error dotnet_diagnostic.IDE0161.severity = error
Directory.Build.props配置
<Project> <PropertyGroup> <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild> </PropertyGroup> </Project>
问题描述
当前项目构建会失败,Rider中运行项目时会报错且无法启动,但Visual Studio 2022仍会强制启动项目。已尝试通过「工具→选项→项目和解决方案→生成并运行→运行时若出现生成或部署错误:不启动」的全局设置解决,但未生效。
解决方案
1. 检查并修改项目级启动设置
全局选项可能被项目自身的配置覆盖,需逐个项目确认:
- 右键目标项目 → 选择「属性」
- 切换到「生成」标签页,点击右下角的「高级」按钮
- 在「高级生成设置」窗口中,找到「生成失败时启动」选项,选择「从不」
- 保存项目设置后重新测试
2. 通过Directory.Build.props批量配置所有项目
若要统一管控解决方案内所有项目,可在Directory.Build.props中添加以下配置:
<Project> <PropertyGroup> <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild> <!-- 禁用默认启动行为 --> <StartAction>None</StartAction> <!-- 明确指定构建失败时不启动项目 --> <OnBuildFailure>DoNotStart</OnBuildFailure> </PropertyGroup> </Project>
3. 确认代码风格规则的构建强制执行状态
确保.editorconfig中的规则确实在构建时被标记为错误:
- 打开Visual Studio的「工具→选项→文本编辑器→C#→代码风格→常规」
- 勾选「在生成时强制执行代码风格」选项
- 执行完整构建(Ctrl+Shift+B),查看输出窗口,确认
IDE0161等规则被输出为Error级别而非Warning
内容的提问来源于stack exchange,提问作者Alex Veto
相关产品推荐
相关产品推荐

