构建警告与IntelliSense警告

时间:2018-01-09 10:11:42

标签: c# visual-studio msbuild warnings intellisense

我刚刚加入了一家拥有遗留代码的公司。 该版本有超过10000个警告。 90%的警告已经过时了#34;警告。 我的同事不希望我禁用这些警告,因为它对IntelliSense中的用户很有用。

我的问题是:是否有一种实用的方法,我仍然可以在Visual Studio的编辑器中看到警告,但它没有显示在build.log中?

3 个答案:

答案 0 :(得分:1)

  

有没有实用的方法,我仍然可以在visual studio的编辑器中看到警告,但是它没有出现在build.log中?

由于您无法停用这些警告,因此无法使用#pragma warning disable,我想提供解决此问题的解决方法。

您可以设法使用/p:WarningLevel=X使用MSBuild命令行来抑制警告级别。

例如,当我从Visual Studio构建示例项目时,错误列表窗口中有一个警告:

enter image description here

然后我在命令行中使用带有属性/p:WarningLevel=0的MSBuild命令行构建它:

msbuild "YourProjectName" /fl /flp:logfile=D:\MyProjectOutput.log;verbosity=diagnostic /p:WarningLevel=0

关卡的含义:

Warning  
Level    Meaning
-------- -------------------------------------------
      0  Turns off emission of all warning messages.

      1  Displays severe warning messages

      2  Displays level 1 warnings plus certain, less-severe warnings, such
         as warnings about hiding class members

      3  Displays level 2 warnings plus certain, less-severe warnings, such 
         as warnings about expressions that always evaluate to true or false

      4  (the default) Displays all level 3 warnings plus informational warnings

enter image description here

构建日志中没有警告,然后打开日志文件,这里也没有警告:

enter image description here

希望这有帮助。

答案 1 :(得分:0)

我认为你需要在构建配置“Debug”和“Release”之间切换。因此,在编译“Release”时,您将能够拥有“干净”的build.log,但在使用“Debug”构建时仍然会收到警告: enter image description here

在自己工作时,您只需取消选中错误列表面板中的警告: enter image description here

答案 2 :(得分:0)

这里有一些基本的SWDev逻辑:

如果警告有用,则应将其修复为错误(可能是次要错误)。 如果警告没有用,那么应该禁止它以保持构建清洁,以便显示有用的警告。

最终,由于项目进度和管理压力,可能无法将技术债务降低到可管理的程度。但是禁用正确且有用的警告是一个非常糟糕的主意(尤其是抑制过时的警告 - 相关组件的下一次升级将导致产品停止工作,需要进行大量的工作来修复它。)

我们通常习惯于处理这些事情,在我工作的地方,将它们作为开发计划的任务优先考虑 - 我们召开会议,决定哪些问题是重要的(哪些警告对继续,压制等......),并将它们分成若干任务,并进行适当的优先排序。