2011-11-26 54 views
2

任何人都可以告诉我如何编写FXCop规则来检查特定的条件编译符号吗?如何编写自定义FXCop规则来检查条件编译符号?

例如,如果我想编写一个FXCop规则来检查已编译的代码是否已定义了编译符号“CODE_ANALYSIS”,那么我该怎么做呢?

我能想到的唯一方法就是解析.csproj文件并寻找。我认为这种方式很快就会变得混乱,因为您必须确定当前构建的哪些构建条件已满足。任何其他建议感激。

回答

2

我不相信你可以,因为FxCop在编译代码上工作,一旦编译代码生成,编译符号的任何概念都被删除(编译器使用它们来生成编译代码,但它们不在其中)。

唯一我认为你可以做的是在CODE_ANALYSIS符号内有一些代码,然后检查它在FxCop中的存在。

+0

是的。我也这么想。我想知道是否有创建类似于将被预注入的属性的东西,然后我可以寻找它。我想我应该考虑用MSBuild来做这件事。 –

+0

就像我说的,只需在'#if CODE_ANALYSIS'部分之间放置一些东西,然后在FxCop中查找它。 –

+0

为了我的目的,我必须在所有使用某种扩展的项目中注入代码。因为我必须编写一个VS扩展,所以我可能只需在构建扩展之前查找适当的常量。 –

相关问题