TFS2010:如果存在代码分析警告,则阻止签入

Posted

技术标签:

【中文标题】TFS2010:如果存在代码分析警告,则阻止签入【英文标题】:TFS2010: Prevent check-in if code analysis warning exists 【发布时间】:2012-02-29 14:55:40 【问题描述】:

在我的团队中,我想阻止开发人员签入代码并带有来自代码分析的警告。

就像我在一些博客和 ***-questions 中发现的那样,我尝试使用签入策略来做到这一点:

    在 Visual Studio 项目中启用代码分析并设置 Rulset(Microsoft 最低推荐规则) 添加签入策略“代码分析”并设置相同的规则集(Microsoft 最低推荐规则)。

我现在遇到的问题是,该策略仅在出现错误时才阻止签入,但在只有警告时不会阻止签入。当然,我可以更改规则集并将所有规则设置为错误。但是,本地构建也是不可能的。

所以,我想要的是所有规则都是警告,并且可以构建项目,但如果只存在警告,也阻止签入。

我的想法是,在签入策略设置中设置不同的规则集(相同的规则,但所有规则都为错误)。但是通过尝试签入 y 得到错误:代码分析设置与代码分析策略不兼容

所以我的问题是,如果有人有解决方案或想法,我该如何解决这个问题。

提前感谢您的回答!

【问题讨论】:

【参考方案1】:

我在 V2010 中尝试过此方法(即将警告视为错误),但它仅适用于编译器警告,不适用于 CA 警告。所以我的 CA 警告仍然是警告,而我的编译器警告现在变成了错误。

【讨论】:

【参考方案2】:

如果我做对了,你之后的行为是:

在开发者工作站:即使有警告也编译成功 在 TFS-Build 中:如果出现警告则编译中断

为了得到这个:

    从您的 csproj 中删除“在构建时启用代码分析” 删除签到政策 打开构建定义进行编辑并导航到“Process”>“2.Basic”并将“Perform Code Analysis”设置为“Always”

现在,请注意您可能会在每个 DEV 工作站中构建成功而在 TFS 中失败的情况下运行。那真的很糟糕。避免这种情况的一种方法是将构建的触发器更改为“门控签入”,这样如果出现警告 - 构建将失败并且开发人员无法签入。这最后一步 - 在某种程度上 - 替代了您删除的签入政策。

【讨论】:

感谢您的回答。正如您所说,我认为通过您的解决方案,我遇到了无法在 Visual Studio 中直接看到警告的问题。我在一些帖子中看到,在 tfs2008 中可以设置“将警告视为错误”,这完全涵盖了我的问题。但似乎在 tfs2010 中此选项不可用.. 现在我正在考虑制定自定义签入策略,但我不太喜欢这个想法 ;-)

以上是关于TFS2010:如果存在代码分析警告,则阻止签入的主要内容,如果未能解决你的问题,请参考以下文章

如何在 TFS 2010 中恢复(回滚)签入

是否有自动为您格式化代码的 TFS 签入策略?

防止在 TFS 2017 分支上直接签入,仅允许合并

TFS 2010 从门控签入中排除文件类型

如何回滚 TFS 签入?

TFS 签入 RSS 提要