作为错误与Visual Studio中不推荐使用的属性的警告

时间:2011-01-04 23:10:25

标签: visual-studio compiler-warnings obsolete

我们喜欢警告为错误设置,因为我们的政策是不检查带警告的代码,这是我们发现强制执行它的唯一有效方法。

我们还希望使用过时属性来标记不应再使用的方法。

问题是将Obsolete属性添加到方法或类会立即导致大量项目无法构建(更不用说如果不推荐使用.NET API调用的话)。

有没有人有这个好的解决方案?

我们想要一个可见的,难以忽略的指示符,表明您正在使用已弃用的API,但这不会导致构建失败。我们希望在IDE和CI版本中看到警告。

3 个答案:

答案 0 :(得分:1)

一个简单的解决方案是使用构建配置(例如,您的调试构建配置)而不会将警告视为错误。但是,如果要指出开发人员在构建时出现问题,那就不好了,因为他们会在签入之前忘记进行发布构建。

或者,您可以将规则集设置为自行抛出错误而不是引发警告,而不是将“警告用作错误”。当然,这意味着非CA警告不会导致错误。

我认为最好的解决方案是在服务器端处理它。理想情况下,您有某种gated checkin,以便您的代码存储库拒绝提交,这些提交不使用其构建定义构建(警告为错误,您的开发人员可以离开警告 - 错误关闭)。我怀疑这只是一个仅限TFS-2k10的功能。

答案 1 :(得分:0)

这另一个堆栈溢出帖子应该有所帮助: https://stackoverflow.com/a/468166/9195608

基本上说:

  

您可以在项目文件中添加WarningsNotAsErrors标签。

     id t1 t2 t3 t4  toatal_change
0  adam  A  A  A  B              1
1  john  A  B  B  A              2
  

注意:612和618都是关于过时的警告

     

612和618之间的区别是ObsoleteAttribute的注释。没有注释的ObsoleteAttribute生成错误612,带有注释的ObsoleteAttribute生成618。

答案 2 :(得分:0)

如此处/sdl (Enable Additional Security Checks)所述,如果关闭SDL,编译器会将其视为警告。