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