如何为 C#/.NET 强制执行代码样式,例如 IDE0058、IDE0059 和 IDE0060?
How can I enforce code styles for C#/.NET, like IDE0058, IDE0059 and IDE0060?
我正在研究强制代码样式,并开始在我的 .editorconfig 中实现 IDE0058, IDE0059 and IDE0060,如下所示:
csharp_style_unused_value_expression_statement_preference = discard_variable:error
csharp_style_unused_value_assignment_preference = discard_variable:error
dotnet_code_quality_unused_parameters = all:error
当我在 windows 上 运行 构建 visual studio 2022 时,我确实遇到了错误,尽管构建仍然成功。
但是,当我从命令行 运行 dotnet build
时,我没有收到任何错误,当我搜索样式代码时,我找不到任何提及它们的信息。
我同事在他的mac书上测试过,visual studio的mac版本没有报错。命令行也没有。
在我们的 gitlab 管道中我们也 运行 dotnet build
,它也没有任何错误地通过了。
在所有环境中,我们都使用 .NET 6.0。
是否可以使用 .editorconfig
强制执行这些代码样式?如果是,怎么做?
如果不是,如何强制执行代码风格?
您需要启用项目属性:
- 右键单击项目
- 点击“构建”
- 将
Treat warnings as errors
设为All
:
但是,如果您这样做,它只会添加到可能是 Debug
的当前配置。
对于两种配置(Debug
和 Release
),您可以通过 UI 手动完成。
或者您可以编辑 .csproj
文件。
如果您通过 UI 设置 Treat warnings as errors: All
,这将被添加。
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<WarningsAsErrors />
</PropertyGroup>
您可以复制它并更改配置:
如果您通过 UI 设置 Treat warnings as errors: All
。
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'"> // Changed `Debug` to `Release`
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<WarningsAsErrors />
</PropertyGroup>
将以下行添加到 csproj 文件
<PropertyGroup>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<AnalysisLevel>6.0-recommended</AnalysisLevel>
</PropertyGroup>
然后在 editorconfig 中除了您现有的规则之外添加
dotnet_diagnostic.IDE0058.severity = error
dotnet_diagnostic.IDE0059.severity = error
dotnet_diagnostic.IDE0060.severity = error
我正在研究强制代码样式,并开始在我的 .editorconfig 中实现 IDE0058, IDE0059 and IDE0060,如下所示:
csharp_style_unused_value_expression_statement_preference = discard_variable:error
csharp_style_unused_value_assignment_preference = discard_variable:error
dotnet_code_quality_unused_parameters = all:error
当我在 windows 上 运行 构建 visual studio 2022 时,我确实遇到了错误,尽管构建仍然成功。
但是,当我从命令行 运行 dotnet build
时,我没有收到任何错误,当我搜索样式代码时,我找不到任何提及它们的信息。
我同事在他的mac书上测试过,visual studio的mac版本没有报错。命令行也没有。
在我们的 gitlab 管道中我们也 运行 dotnet build
,它也没有任何错误地通过了。
在所有环境中,我们都使用 .NET 6.0。
是否可以使用 .editorconfig
强制执行这些代码样式?如果是,怎么做?
如果不是,如何强制执行代码风格?
您需要启用项目属性:
- 右键单击项目
- 点击“构建”
- 将
Treat warnings as errors
设为All
:
但是,如果您这样做,它只会添加到可能是 Debug
的当前配置。
对于两种配置(Debug
和 Release
),您可以通过 UI 手动完成。
或者您可以编辑 .csproj
文件。
如果您通过 UI 设置 Treat warnings as errors: All
,这将被添加。
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<WarningsAsErrors />
</PropertyGroup>
您可以复制它并更改配置:
如果您通过 UI 设置 Treat warnings as errors: All
。
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'"> // Changed `Debug` to `Release`
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<WarningsAsErrors />
</PropertyGroup>
将以下行添加到 csproj 文件
<PropertyGroup>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<AnalysisLevel>6.0-recommended</AnalysisLevel>
</PropertyGroup>
然后在 editorconfig 中除了您现有的规则之外添加
dotnet_diagnostic.IDE0058.severity = error
dotnet_diagnostic.IDE0059.severity = error
dotnet_diagnostic.IDE0060.severity = error