我为解决方案设置了两个构建定义,一个是每晚触发的夜间构建,另一个是当开发人员尝试将新的更改签入到源代码管理时触发的门控签入构建。夜间构建使用的是一个自定义模板,该模板使用从Ewald Hoffman method稍微修改过的方法来增加程序集版本。当通过要签入文件的自定义活动签入文件时,我会得到构建错误:
您的签入无法完成,因为它会影响以下门限构建定义\Project\GatedBuld。要完成签入,需要对搁置集Gated_2011-11-08_09.31.42.6934;DOMAIN\TFSBuildAccount.的构建进行排队。
目前,我还没有找到绕过这个门控签入构建的方法(使用*NO_CI*签入注释来阻止CI构建)。
我已经尝试过为构建服务帐户设置“通过构建覆盖签入验证”权限(通过对门控构建的安全性),但据我所知,这只会在手动签入代码时(通过在门控签入对话框中显示的复选框)阻止门控生成。我正在寻找的是一种在自动签入更改时绕过门控构建的方法
有什么建议吗?
一如既往,谢谢你提前提供帮助
发布于 2011-11-08 14:00:38
以编程方式签入更改时,可以创建WorkspaceCheckInParameters对象并将其OverrideGatedCheckIn属性设置为true。以下代码将绕过门控签入(也包括CI):
var pendingChanges = workspace.GetPendingChanges();
if (pendingChanges.Any())
{
WorkspaceCheckInParameters parameters = new WorkspaceCheckInParameters(pendingChanges, BuildCommonUtil.NoCICheckInComment)
{
OverrideGatedCheckIn = true,
};
workspace.CheckIn(parameters);
}请注意,您需要授予对所有受影响的生成定义执行签入的帐户上绕过已关闭签入的权限。在这种情况下,它是晚间构建的构建服务帐户。
发布于 2017-07-12 17:47:40
我用Powershell编写了程序集版本更新代码,但找不到Powershell的代码"OverrideGatedCheckIn = true“,我所做的就是将程序集版本文件(SharedAssembly.vb & SharedAssembly.cs)移动到一个名为SharedAssembly的文件夹中,并将它们排除在考虑GatedCheck进程之外。

https://stackoverflow.com/questions/8049739
复制相似问题