【发布时间】:2020-02-11 10:30:02
【问题描述】:
Roslyn 代码分析器可在实时代码编辑和构建时工作。
但是,它们会大大减慢构建速度。因此,我想在构建期间禁用它们 - 但在实时编辑期间仍然使用它们。
这可能吗?
【问题讨论】:
标签: c# visual-studio visual-studio-2019 roslyn-code-analysis
Roslyn 代码分析器可在实时代码编辑和构建时工作。
但是,它们会大大减慢构建速度。因此,我想在构建期间禁用它们 - 但在实时编辑期间仍然使用它们。
这可能吗?
【问题讨论】:
标签: c# visual-studio visual-studio-2019 roslyn-code-analysis
您可以在 .csproj 中使用RunAnalyzersDuringBuild:
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
</PropertyGroup>
更新:来自 cmets Docs的一些文档
【讨论】:
感谢之前的回答和文档链接!我想有条件地在我的 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,如 this answer 中所述。
【讨论】: