运行 在实时代码编辑期间使用 Roslyn 分析器,但在构建期间不使用

Run Roslyn analyzers during live code editing but not during build

Roslyn 代码分析器可在实时代码编辑和构建时工作。

但是,它们大大减慢了构建速度。因此,我想在构建期间禁用它们 - 但在实时编辑期间仍会使用它们。

这可能吗?

您可以在 .csproj 中使用 RunAnalyzersDuringBuild:

<PropertyGroup>    
     <TargetFramework>netcoreapp3.1</TargetFramework> 
     <RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>  
</PropertyGroup>

更新:评论中的一些文档Docs

感谢之前的回答和link文档!我想在我的 CI 构建中有条件地 运行 这些分析器,并用于本地编辑(智能感知),但不适用于本地构建。我用 Directory.Build.props 文件(和自定义 msbuild 属性 -p:CI=true)完成了这个:

<Project>
 <PropertyGroup>
   <RunAnalyzersDuringLiveAnalysis>true</RunAnalyzersDuringLiveAnalysis>
 </PropertyGroup>
 <PropertyGroup Condition="'$(CI)' != true">
   <RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
 </PropertyGroup>
 <PropertyGroup Condition="'$(CI)' == true">
   <RunAnalyzersDuringBuild>true</RunAnalyzersDuringBuild>
 </PropertyGroup>
</Project>

https://docs.microsoft.com/en-us/visualstudio/msbuild/customize-your-build?view=vs-2022

注意:我确实必须从解决方案项目中删除 default.build.props,如 中所述。