我正努力定义CodeAnalysisRules列表,当MSBuild执行我的TFSBuild.proj文件时,应该从代码分析工具中省略这些列表。
但是每次测试时,我的要排除的代码分析规则列表都会被忽略,Team Build只是简单地尊重每个项目的代码分析规则设置。
任何人都有一个TFSBuild.proj文件的示例,该文件为Team中构建的所有项目共享一个代码分析规则例外列表?我正在使用Team System 2008。
感谢您的帮助?
答案 0 :(得分:1)
我们通过代码分析签到政策执行此操作。您可以通过Team System进行配置。要实施,只需选择您的规则,然后右键单击解决方案 - >使用签到策略替换代码分析设置。
答案 1 :(得分:1)
我认为尝试使用不同的设置覆盖csproj设置时没有太大意义 - 当然,无论何时何地构建代码,您都希望使用相同的CA设置(或完全禁用CA)?
正如foosnazzy所说,(通常)在MSBuild中没有必要这样做。您可以使用CA签入策略来设置要应用的规则。然后,在解决方案资源管理器中右键单击您的解决方案,在上下文菜单的大约一半处有一个选项子菜单,用于将TFSProjects的CA策略应用于解决方案中的所有项目。您可以使用服务器覆盖项目设置,也可以合并它们。
它可能只复制当前配置的设置,因此如果要将相同的CA设置应用于“调试和发布”,则可能需要执行两次。 (我依旧记得发生了这种情况,但是我们没有在我们的发布版本上运行CA,所以这不是我最近尝试过的)
(这在VSTS2005中可用,但它不起作用 - 这些值与项目中的值“合并”,因此任何现有的CA规则的严重性都会增加(警告或错误)但是你不能禁用CA规则(降级错误 - >警告 - >禁用)。此外,每次打开解决方案时,CA设置都会“漂移”,因此您必须每隔几天重新应用它们以保持其正常工作)
另一种方法是在单个项目中设置所需的CA规则,找到包含列表的XML元素,并使用文本编辑器(或几行C#代码)进行全局搜索&替换项目中所有csproj文件中的CA元素。这就是我在VSTS2008出现之前的做法 - 一旦你怀疑这项技术,只需几秒钟就可以通过所有csprojs迁移你的设置。这样做的好处是您可以更加选择性地应用CA规则的项目。
答案 2 :(得分:0)
嗯,我花了一段时间才找到这个,但这是我能找到的最佳答案
它确实有效,而且它允许我在所有解决方案中强制执行一套一致的规则,而无需访问每个项目的文件,这对我来说非常重要,因为我们调整了规则集并且不希望手动更新每个项目每次
其他人都知道有什么用吗? - 这是一个VS2005解决方案/解决方法所以我希望在VS2008 Team System中更容易,但到目前为止还没有找到任何其他东西