Visual Studio 2008中的自定义编译器警告

时间:2009-10-13 14:04:47

标签: visual-studio visual-studio-2008 warnings compiler-warnings

Custom Compiler Warnings
C#: Create custom warning in Visual Studio if certain method is used in source code
他们处理作者无法控制的代码时没有帮助。

我们在软件中使用第三方UI控件套件(DevExpress),当有人使用MessageBox.Show("blah");代替XtraMessageBox.Show("blah");

时,我想生成警告

有办法吗?

3 个答案:

答案 0 :(得分:5)

通过FxCop / Visual Studio代码分析的自定义规则,可以相对轻松地解决此类问题。如果您使用的是Visual Studio Developer Edition,您甚至会在IDE中看到与编译警告和错误一起显示的规则失败。

答案 1 :(得分:2)

虽然你无法在.NET中执行真正的自定义编译时错误,但是有许多第三方工具(免费和商业)都可以将其验证逻辑注入到构建中过程,通常在编译之后。

以下是我所知道的三种解决问题的方法:

  1. Resharper 5.0($)将支持custom rules /警告。
  2. PostSharp(免费)中,您可以定义OnMethodBoundary方面,覆盖其CompileTimeValidate方法并从中发出[post]编译时错误。
  3. NDepend可以与您的构建过程($)集成,以实施类似
  4. 的编码策略

答案 2 :(得分:1)

没有没有直接的方法。如果你考虑一下,你正在为一些你甚至没有编译的代码寻找编译器警告。

如果你真的想要这个,可以在你编译的程序集上使用Reflection方法来检查是否有任何你不想要的方法/程序集被调用。 Cecil具有您需要的许多功能。然后,您可以将这部分构建到构建过程中。