我们有许多大型解决方案,并根据不同的项目类型提供了许多规则集文件。例如,我们有:
包含以下内容的Sharepoint Rulesset:
测试项目规则集
标准规则集
如果代码分析能够根据项目类型自动选择正确的设置,我会很喜欢它。
我还没有找到理想的方法来做到这一点。我会考虑的事情:
我们目前正在做什么:
我很想听听有关更好解决方案的想法......
答案 0 :(得分:1)
另一种方法是用代码分析目标文件或构建任务替换允许推理的版本。就个人而言,我不会喜欢这个,因为拦截点对我的口味来说太隐蔽了,但是ymmv ......
如果这是针对一个团队将在一段时间内维持的产品,我可能会选择与您的第三个选项相符的内容。另一方面,如果这是一个项目,其中代码库最终将转移到另一个团队(无论是内部还是外部),我会选择可以通过Visual Studio UI完成的事情。不幸的是,这意味着项目特定的规则集选择。唯一的好消息是,有一个UI允许对给定解决方案中的所有项目进行管理(可从Analyze ...为Solution菜单配置代码分析)。
答案 1 :(得分:1)
我找到了适用于大多数项目类型的解决方案。 Microsoft提供的许多默认Msbuild目标都包含一个选项,可以通过将有问题的目标放在Msbuild文件夹结构的特定文件夹中来加载BeforeTargets和Aftertargets。
我将目标文件放入这些文件夹(基于项目类型预期的方式命名,这些项目类型与项目类型不同),我指定了默认的CodeAnalaysis.rules文件。项目仍然可以覆盖这些,但如果不是,则使用默认值。
Sharepoint例如查找此文件:
$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\SharePointTools\Custom.After.Microsoft.VisualStudio.SharePoint.targets
这些引用存储在msbuild属性中,例如$(CustomAfterSharePointTargets)
,如果需要,可以扩展或覆盖。
我的解决方案是upon this feature和this feature。
我在Visual Studio 11中提出了更多标准化的请求。Please vote for it。