Могу ли я обойти сборку Gated Check-In после проверки файла во время отдельного процесса сборки?TFS 2010 - PullRequest
7 голосов
/ 08 ноября 2011

У меня есть 2 определения сборки, настроенных для решения: 1 - это ночная сборка, которая запускается каждую ночь, а другая - сборка Gated Check-In, которая срабатывает, когда разработчики пытаются проверить новые изменения в системе контроля версий.Ночная сборка использует пользовательский шаблон, который увеличивает версии сборки, используя метод, который был слегка изменен по сравнению с методом Эвальда Хоффмана .Когда файл регистрируется с помощью пользовательского действия для проверки файлов, я получаю ошибку сборки:

Ваша регистрация не может быть завершена, поскольку она влияет на следующие определения gated сборки \ Project \ GatedBuld,Для завершения регистрации вам нужно будет поставить в очередь сборку полки Gated_2011-11-08_09.31.42.6934; DOMAIN \ TFSBuildAccount.

В настоящее время я не смог найти способчтобы обойти эту стробированную сборку регистрации (сборки CI предотвращаются с помощью проверки * NO_CI * в комментарии).

Я попытался установить разрешение «Переопределить проверку регистрации сборкой» для учетной записи службы сборки (через безопасность для gated-сборки), но, насколько я знаю, это предотвратит только gated-сборку при ручной проверке кода (через флажок, представленный в диалоговом окне Gated Check-in).То, что я ищу, - это способ обойти закрытую сборку при автоматической проверке изменений

Любые предложения?

Как всегда, заранее спасибо за любую помощь

Ответы [ 2 ]

7 голосов
/ 08 ноября 2011

Когда вы регистрируете свои изменения программно, вы можете создать объект 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 для учетной записи, которая выполняет проверку для всех затронутых определений сборки.В данном случае это учетная запись службы сборки ночной сборки.

0 голосов
/ 12 июля 2017

Я написал код обновления версии сборки в Powershell и не смог найти более тонкий код "OverrideGatedCheckIn = true" для Powershell, и все, что я делал, это перемещал файлы версий сборки (SharedAssembly.vb & SharedAssembly.cs) в папку с именем SharedAssembly. и исключая их из рассмотрения для процесса GatedCheck-In.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...