【问题标题】:Warnings converted to errors once build completes构建完成后警告转换为错误
【发布时间】:2019-05-20 16:35:24
【问题描述】:

在 Visual Studio 2015、2017 和 2019 中,我遇到了一个奇怪的问题,警告被转换为错误,双击它们什么也没做(而不是将我链接到有问题的代码。)

对于上下文,所有这些警告都在自动生成的 .designer.cs 文件中,因此手动修复它们将毫无意义,因为它们将在下次生成时被覆盖。

我安装的唯一扩展是 ReSharper,但这仅在 VS 2017 中。2015 和 2019 都没有安装它。

我尝试过所有项目,并确保将“将警告视为错误”设置为“无”(所有项目一开始都是这样设置的,我不必将任何项目更改为无)。 它们看起来都是这样的:

我尝试重新启动我的电脑,关闭 VS 并删除隐藏的 .vs 和 .suo 文件(然后再次重新启动我的电脑)。

大多数警告都是这样,它使用关键字“virtual”而不是“override”。此外,正如您在第二行中看到的那样,它甚至将先前的“错误”称为警告。

我团队的其他成员只将它们视为警告,但我有一个本地配置问题,但我在工具->选项下看不到任何明显相关的内容。

我必须缺少一些设置,如果有任何建议,我将不胜感激。谢谢。

【问题讨论】:

  • 这些看起来像 代码分析 警告 - 转到相应的项目设置选项卡并取消选中 Enable Code Analysis on Build 选项和/或 抑制生成代码的结果选项,看看这是否解决了您的问题。
  • these switches 有没有可能在某处使用?
  • @Filburt 感谢您的建议。 “在构建时启用代码分析”已被禁用。我在所有项目中关闭了“抑制生成代码的结果”,关闭了 VS,删除了 .vs 文件夹,然后对项目进行了清理+重建。错误仍然存​​在
  • @JohnWu 他们都设置为 W4。这不应该影响被视为错误的警告。如果我将其转为 W1,错误就会消失,但这也意味着我无法对该项目中的其他文件进行全面分析,这似乎不是一个好的解决方案。我不确定如何检查是否设置了“WX”标志,但看到相关设置如何设置为“无”,我会假设它已关闭。
  • 卸载所有版本的 VS 并重新安装 VS 2015 现在将它们视为警告。我仍然有一个可能不相关的问题,它拒绝生成 .pdb 文件,尽管 *shrugs

标签: c# visual-studio-2015 visual-studio-2017 visual-studio-2019


【解决方案1】:

我的 .Net 标准项目也有类似的问题,我使用安装了 Resharper[2020.3.2] 扩展的 Visual Studio 2019[16.9.2]。 即使“在构建时启用代码分析”被禁用,似乎代码分析规则集文件仍然存在。

我通过以下步骤解决了这个问题:

  1. 从解决方案资源管理器中打开一个 RuleSet 文件。
  2. 在 RuleSet 窗口中,选择有问题的项目
  3. 根据转换为错误的警告编号取消选中任何规则。
  4. 保存文件并重新构建项目。

更新

一旦问题得到解决,重新激活(勾选)规则并再次启用代码分析以保持代码分析工作。应该没有警告转换为错误。

【讨论】:

  • 这将完全跳过该规则。看起来“将警告视为错误”设置可能已损坏。您是否尝试将该值设置为“全部”、构建、将其设置为“无”或“特定警告”并再次构建?
  • 我在尝试您的建议之前勾选了复制问题的规则,但无法再复制问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-09
  • 1970-01-01
  • 1970-01-01
  • 2019-10-23
  • 1970-01-01
  • 2016-02-08
  • 1970-01-01
相关资源
最近更新 更多