我们喜欢警告为错误设置,因为我们的政策是不检查带警告的代码,这是我们发现强制执行它的唯一有效方法。
我们还希望使用过时属性来标记不应再使用的方法。
问题是将Obsolete属性添加到方法或类会立即导致大量项目无法构建(更不用说如果不推荐使用.NET API调用的话)。
有没有人有这个好的解决方案?
我们想要一个可见的,难以忽略的指示符,表明您正在使用已弃用的API,但这不会导致构建失败。我们希望在IDE和CI版本中看到警告。
答案 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,编译器会将其视为警告。