sor*_*rke 20 c# code-generation suppress-warnings visual-studio
我为我的VS项目打开了"将警告视为错误",这意味着我因错过的文档而出错(这个特定项目的提醒很好).
但是,部分代码是由自定义工具生成的,该工具不会插入xml文档,因此我正在寻找仅忽略生成代码的缺失xml文档,而不是整个项目.我对生成的实际文件没有任何影响,也无法在文件中插入任何内容(因为它经常被工具重新生成)所以我在生成的文件外面寻找存在的东西(生成的类是部分的,如果有帮助的话)
编辑:请参阅注释,表明这不适用于C#4.我不清楚它是否在早期版本的编译器中有效.C#4规范虽然很清楚.第2.5.8.1节规定:
一个
#pragma warning restore
指令恢复所有或给定的警告,这是有效的编译单元开始的状态.请注意,如果在外部禁用了特定警告,则#pragma warning restore
(无论是全部警告还是指定警告)都不会重新启用该警告.
Jeff 在博客文章中有一个解决方法 - 基本上是作为构建的一部分重新处理自动生成的代码.
正如Tom所说,您可以在整个项目中添加"忽略"(构建/抑制警告 - 输入1591作为警告编号) - 但是您可以在每个未生成的文件的顶部自行恢复警告:
#pragma warning restore 1591
Run Code Online (Sandbox Code Playgroud)
这很丑陋,但它确实有效(我刚试过它).
避免在生成的代码上出现警告或代码分析错误的最佳方法是使用GeneratedCodeAttribute修饰生成的类,并使代码文件以*.generated.cs模式结束.
如果你的代码文件也有文件头,你应该有这些标签:
//----------------------
// <auto-generated>
// Tool description
// </auto-generated>
//----------------------
Run Code Online (Sandbox Code Playgroud)
这不是强制性的,但如果您有代码文件头,这是一个很好的做法.
这样,FxCop和StyleCop等其他工具将不再分析您的代码.
不正常的是,您的代码生成工具不会使用上面提到的属性来分解您的代码元素.尝试查看是否在工具设置中启用了选项或联系开发团队.
编辑:生成的类是否是部分类,并经常做实际的类名称和数字更改?因为如果生成的代码内容不是很多,那么你可以做的只是创建另一个代码文件,然后声明生成的部分类用GeneratedCodeAttribute来装饰它们.有一次它挽救了我的生命(和我的时间!).
归档时间: |
|
查看次数: |
7191 次 |
最近记录: |