在单独的构建过程中检查文件后,是否可以绕过Gated Check-In构建?TFS 2010

Ver*_*min 7 msbuild tfs2010

我为解决方案设置了2个构建定义,1是每晚触发的每晚构建,另一个是门控签入构建,当开发人员尝试检查源控件中的新更改时将触发该构建.每晚构建使用自定义模板,该模板使用从Ewald Hoffman方法略微修改的方法来增加装配版本.当通过自定义活动签入文件以检查文件时,我得到构建错误:

您的签入无法完成,因为它会影响以下选通的构建定义\ Project\GatedBuld.要完成签入,您需要对shelveset Gated_2011-11-08_09.31.42.6934; DOMAIN\TFSBuildAccount的构建进行排队.

目前我还没有找到绕过这个门控签到版本的方法(使用*NO_CI*检查评论来阻止CI版本).

我已经尝试为构建服务帐户设置"覆盖签入验证的构建"权限(通过门控构建的安全性),但据我所知,这只会在手动检查代码时阻止门控构建(通过"门禁登记"对话框中显示的复选框).我正在寻找的是一种在自动检查更改时绕过门控构建的方法

有什么建议?

一如既往,感谢任何提前帮助

Dua*_* Le 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);
            }
Run Code Online (Sandbox Code Playgroud)

请注意,您需要授予权限,以绕过执行所有受影响的构建定义的签入的帐户上的gated checkin.在这种情况下,它是Nightly版本的构建服务帐户.