Msbuild 在单独的生成过程中签入文件后,是否可以绕过门控签入生成?TFS 2010

Msbuild 在单独的生成过程中签入文件后,是否可以绕过门控签入生成?TFS 2010,msbuild,Msbuild,我为一个解决方案设置了两个构建定义,一个是每晚触发的夜间构建,另一个是门控签入构建,当开发人员尝试将新更改签入到源代码管理中时将触发。夜间构建使用的是一个自定义模板,该模板使用从中稍微修改的方法来增加程序集版本。当通过自定义活动检入文件以检入文件时,我收到生成错误: 您的签入无法完成,因为它会影响以下内容 门控生成定义\Project\GatedBuld。完成您的登记手续 您需要将搁置集的构建排队 门控_2011-11-08_09.31.42.6934;域\TFSBuildAccount 目前,

我为一个解决方案设置了两个构建定义,一个是每晚触发的夜间构建,另一个是门控签入构建,当开发人员尝试将新更改签入到源代码管理中时将触发。夜间构建使用的是一个自定义模板,该模板使用从中稍微修改的方法来增加程序集版本。当通过自定义活动检入文件以检入文件时,我收到生成错误:

您的签入无法完成,因为它会影响以下内容 门控生成定义\Project\GatedBuld。完成您的登记手续 您需要将搁置集的构建排队 门控_2011-11-08_09.31.42.6934;域\TFSBuildAccount

目前,我还无法找到绕过此门控签入生成的方法(使用*NO_CI*check-in注释阻止CI生成)

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

有什么建议吗


一如既往,感谢您在以编程方式签入更改时提供的帮助,您可以创建一个对象并将其OverrideGatedCheckIn属性设置为true。以下代码将绕过门控签入(以及CI):


请注意,您需要授予对执行所有受影响的生成定义的签入的帐户绕过封闭签入的权限。在本例中,它是夜间构建的构建服务帐户。

我在Powershell中编写了程序集版本更新代码,但找不到Powershell的更精简的代码“
OverrideGatedCheckIn=true
”,我所做的只是移动程序集版本文件(SharedAssembly.vb和SharedAssembly.cs)添加到名为SharedAssembly的文件夹,并将其排除在GatedCheck In进程之外

            var pendingChanges = workspace.GetPendingChanges();
            if (pendingChanges.Any())
            {
                WorkspaceCheckInParameters parameters = new WorkspaceCheckInParameters(pendingChanges, BuildCommonUtil.NoCICheckInComment)
                {
                    OverrideGatedCheckIn = true,
                };
                workspace.CheckIn(parameters);
            }