我刚刚加入了一家拥有遗留代码的公司。 该版本有超过10000个警告。 90%的警告已经过时了#34;警告。 我的同事不希望我禁用这些警告,因为它对IntelliSense中的用户很有用。
我的问题是:是否有一种实用的方法,我仍然可以在Visual Studio的编辑器中看到警告,但它没有显示在build.log中?
答案 0 :(得分:1)
有没有实用的方法,我仍然可以在visual studio的编辑器中看到警告,但是它没有出现在build.log中?
由于您无法停用这些警告,因此无法使用#pragma warning disable
,我想提供解决此问题的解决方法。
您可以设法使用/p:WarningLevel=X
使用MSBuild命令行来抑制警告级别。
例如,当我从Visual Studio构建示例项目时,错误列表窗口中有一个警告:
然后我在命令行中使用带有属性/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
构建日志中没有警告,然后打开日志文件,这里也没有警告:
希望这有帮助。
答案 1 :(得分:0)
答案 2 :(得分:0)
这里有一些基本的SWDev逻辑:
如果警告有用,则应将其修复为错误(可能是次要错误)。 如果警告没有用,那么应该禁止它以保持构建清洁,以便显示有用的警告。
最终,由于项目进度和管理压力,可能无法将技术债务降低到可管理的程度。但是禁用正确且有用的警告是一个非常糟糕的主意(尤其是抑制过时的警告 - 相关组件的下一次升级将导致产品停止工作,需要进行大量的工作来修复它。)
我们通常习惯于处理这些事情,在我工作的地方,将它们作为开发计划的任务优先考虑 - 我们召开会议,决定哪些问题是重要的(哪些警告对继续,压制等......),并将它们分成若干任务,并进行适当的优先排序。