Сведения о вопросе

DED

19:15, 3rd August, 2020

Теги

Как удалить каталог с помощью cc.net / cruiscontrol?

Просмотров: 521   Ответов: 4

Возможный Дубликат:
Задача предварительной сборки-удаление рабочей копии в CruiseControl.NET

Я хотел бы удалить свой рабочий каталог во время сборки cruisecontrol process...I'm, конечно, это легко, но я не смог найти пример этого...

Если вы знаете, как создать каталог, это тоже будет полезно.

Спасибо.



  Сведения об ответе

nYU

18:10, 3rd August, 2020

Один из двух способов.

  1. Если вы уже используете файл MSBuild или что-то подобное, добавьте действие в файл MSBuild.
  2. Вместо непосредственного выполнения какой-либо команды создайте пакетный файл, который выполняет эту команду, а затем удаляет каталог, и пусть CCnet вызывает этот пакетный файл вместо этого.


  Сведения об ответе

DAAA

13:06, 4th August, 2020

Я предполагаю, что вы хотите удалить рабочий каталог до того, как CruiseControl.NET получит последний код из системы управления версиями. Если это так, то единственный способ добиться этого-написать пользовательский поставщик управления версиями для CruiseControl.NET, который сначала удаляет рабочий каталог, а затем получает последний код. Посмотрите на исходный код CruiseControl.NET's для примеров написания поставщика системы управления версиями.

Если вы хотите удалить рабочий каталог после получения последнего кода из системы управления версиями, то вы можете использовать CruiseControl.NET's исполняемую задачу , запустив "cmd /c del directoryname".


  Сведения об ответе

ASSembler

20:42, 13th August, 2020

В работе ASP.NET для меня самый простой способ сделать это (что позволяет мне ударить либо по MSBUild, либо по NAnt в зависимости от проекта) - это свернуть свой собственный exe, который принимает аргумент, который я передаю вместе с файлом bat, запущенным CC.NET. Это не самая безопасная вещь в мире, но если у вас есть полный контроль над вашей автоматической машиной сборки, это не слишком убого. Быстро и многоразово.

Бросьте в exe где-то, что делает рекурсивное удаление:

static void Main(string[] args)

{
        for (int n = 0; n < args.Length; n++)
        {
            if (Directory.Exists(args[n].ToString()))
            {
                Directory.Delete(args[n].ToString(), true);
            }

        }


}
 


  Сведения об ответе

SILA

02:10, 28th August, 2020

В прошлом я делал это так,чтобы не иметь самого источника CC.Net checkout. Вместо этого существует два элемента <msbuild> для проекта, первый из которых вызывает цель сборки, которая выполняет svn-clean.pl (компилируется до .exe), а затем обновляет источник с помощью svn.exe. Второй элемент <msbuild> запускает основной процесс сборки.

Вы можете легко заменить svn-clean командой delete. Для моих проектов удаление мякины из кассы всегда было быстрее, чем проверка свежей рабочей копии.

Два элемента msbuild необходимы, поскольку основной файл сборки проекта часто обновляется. Это важно, так как обновления файлов сборки будут перезагружены только при запуске нового процесса msbuild.

Эта установка ломается, когда я (очень редко) перемещаю или изменяю зависимости этого целевого объекта сборки clean-and-update до такой степени, что процесс msbuild должен был бы перезагрузиться для получения допустимых инструкций для запуска целевого объекта clean-and-update. Когда это происходит, я останавливаю CC.Net перед фиксацией, иду на сервер CC.Net и делаю 'svn update' вручную.

Сайдлайт: вполне возможно, что CC.Net уже имеет естественную операцию clean-before-build. С тех пор я перешел на TeamCity, который настраивается для каждой сборки или только тогда, когда разработчик выбирает (например, когда вы знаете, что сделали изменение, которое не будет обновляться чисто-svn перемещений каталогов с продуктами сборки приходит на ум).


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться