我为解决方案设置了2个构建定义,1是每晚触发的每晚构建,另一个是Gated Check-In构建,当开发人员尝试检查源控件中的新更改时将触发该构建。每晚构建使用自定义模板,该模板使用从Ewald Hoffman method略微修改的方法来增加程序集版本。当通过自定义活动签入文件以检查文件时,我得到构建错误:
您的办理登机手续无法完成,因为它会影响以下内容 门控构建定义\ Project \ GatedBuld。办理登机手续 你需要对shelveset的构建进行排队 Gated_2011-11-08_09.31.42.6934; DOMAIN \ TFSBuildAccount
目前我还没有办法绕过这个封闭的签到版本(使用* NO_CI *检查评论来阻止CI版本。)
我尝试过为构建服务帐户设置“覆盖签入验证”权限(通过门控构建的安全性),但据我所知,这只会在手动检查代码时阻止门控构建(通过Gated Check-in对话框中显示的复选框)。我正在寻找的是一种在自动检查更改时绕过门控构建的方法
有什么建议吗?
一如既往,感谢您提前提供帮助
答案 0 :(得分:7)
以编程方式检查更改时,可以创建WorkspaceCheckInParameters对象并将其OverrideGatedCheckIn属性设置为true。以下代码将绕过gated checkin(以及CI):
var pendingChanges = workspace.GetPendingChanges();
if (pendingChanges.Any())
{
WorkspaceCheckInParameters parameters = new WorkspaceCheckInParameters(pendingChanges, BuildCommonUtil.NoCICheckInComment)
{
OverrideGatedCheckIn = true,
};
workspace.CheckIn(parameters);
}
请注意,您需要授予权限,以绕过执行所有受影响的构建定义的签入的帐户的gated checkin。在这种情况下,它是Nightly版本的构建服务帐户。
答案 1 :(得分:0)