【问题标题】:How to fail .NET 4.5 build with Microsoft.CodeAnalysis.NetAnalyzers?如何使用 Microsoft.CodeAnalysis.NetAnalyzers 构建 .NET 4.5 失败?
【发布时间】:2021-10-22 04:57:06
【问题描述】:

我正在尝试在旧版 .NET 4.5 应用中使用 Microsoft.CodeAnalysis.NetAnalyzers,但由于原因无法升级。

根据documentation,您可以安装Microsoft.CodeAnalysis.NetAnalyzers NuGet 包并在“旧”.net 版本中使用分析器。几岁,我不确定。

如果您不想迁移到 .NET 5+ SDK,请使用非 SDK 样式 .NET Framework 项目,或者更喜欢基于 NuGet 包的模型, 分析仪也可在 Microsoft.CodeAnalysis.NetAnalyzers NuGet 包。

错误确实显示在“Build + IntelliSense”下的 Visual Studio 错误列表中,但不会显示在常规“Build”下,因此即使在 .editorconfig 中配置了错误,构建也不会失败

我想 Visual Studio IntelliSense 使用 .NET 5 SDK 来显示错误,然后实际构建使用 .NET 4.5,所以不知道分析规则?那么 NuGet 包应该做什么呢?

这样的旧 .NET Framework 版本是否不支持此功能?文档中的引用表明一些较旧的框架应该能够使用它。

我有一个安装了Microsoft.CodeAnalysis.NetAnalyzers 的空白文件新项目 .NET 4.5 控制台应用程序和一个带有示例规则的简单 .editorconfig

dotnet_diagnostic.IDE0010.severity = error

如果是这样,有什么替代方案? StyleCop "Classic"?

【问题讨论】:

    标签: c# .net visual-studio msbuild nuget


    【解决方案1】:

    据我所知,旧代码分析使用ruleset 文件,而不是.editorconfig。我还发现了documentation about it。 我在这样的 .NET Framework 项目中使用代码分析:

    • 右键单击项目并转到Properties
    • 转到Code Analysis 标签,
    • 在活动规则中默认有Microsoft Managed Recommended Rules - 点击Configure 按钮,
    • 搜索IDE0010并选择error并保存规则集,
    • 确保现在在Code Analysis 选项卡中,您在活动规则选项中选择了您的文件。

    【讨论】:

    • 嗨卢卡斯。感谢您的回答。你在使用 VS 2019 吗?我也不能让这个构建失败。我在 v16.10.3
    • 我也很好奇 'Microsoft.CodeAnalysis.NetAnalyzers' NuGet 包应该做什么?
    • 我有 VS 16.9.5,我只在 IntelliSense 和错误面板中看到此错误,但它不会触发构建失败。尽管如此,还是缺少一些东西,我安装了 NuGet Microsoft.CodeAnalysis.FxCopAnalyzers。我会再看一遍,我过去也遇到过类似的问题:(
    • @SamLeach 又更新了——我找到了github.com/dotnet/roslyn/issues/6195,我的理解是IDE不是编译器规则,所以在构建过程中不会显示。
    • 我也同意@LukaszSzczygielek。 IDE相关规则不用于编译规则,是这样设计的。 StyleCop 可能是替代方案,或者您可以在 Microsoft Developer Community 上建议此功能。
    猜你喜欢
    • 1970-01-01
    • 2021-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    相关资源
    最近更新 更多