Вопрос в краткой форме, а затем объяснение Мы хотим создать исправления и включить только файлы, которые были изменены в сборке из-за некоторых исправлений для приложения dotnet. Патчи должны автоматически создаваться в процессе непрерывной интеграции с использованием SVN, Cruisecontrol.net и msbuild.Автоматическое создание патчей и развертывание приложений .NET
У нас есть сценарий здесь: Мы хотим поддерживать приложение .net, которое работает на удаленных серверах, используя непрерывную интеграцию. Исходный код находится в SVN и имеет 3 разных репозитория для DEV, QA и PROD. Наши разработчики делают новые исправления ошибок почти каждый день и объединяют изменения в репозиторий dev после их первоначального тестирования и удовлетворения. Код после того, как определенная проблема решена или добавлена функция, затем объединяется в хранилище QA. Код QA встроен и протестирован на QA-машинах вручную. После тестирования QA мы объединим его в PROD. При этом QA также создает новые исправления для файлов, которые необходимо заменить или изменить вручную. Затем патчи развертываются на промежуточном сервере. На нем он тестируется до совершенства, а затем патчи развертываются на реальных удаленных серверах.
В поисках непрерывной интеграции мы теперь пытаемся использовать сочетание CruiseControl.net и msbuild для выполнения этого процесса. Процесс хорош до этапа, на котором мы должны генерировать исправления из строя QA автоматически. После создания патчей мы помещаем их на ftp-сервер, и из них они будут загружены на промежуточный сервер для тестирования. Проблема в том, что создание патчей из новой сборки имеет несколько аспектов. Файл решения для приложения имеет много проектов, и библиотеки dll копируются с использованием событий postbuild в папку bin приложения-запуска. Таким образом, у нас есть конкретная структура каталогов в фактическом приложении, которое само представляет собой комбинацию из 6 решений, которые более или менее независимы друг от друга.
Как мы пытаемся создать патчи, мы ищем журналы svn, чтобы найти файлы, которые были изменены. Затем мы анализируем его поиск имени проекта. Затем мы копируем все файлы из каталога bin этого проекта в папку патча определенным образом, в котором релиз имеет их, используя файл сопоставления, в котором есть все файлы приложения.
Так кто может предложить гораздо лучший или простой способ сделать патч, если у нас есть svn и cruisecontrol.net. Или любой другой инструмент с открытым исходным кодом для этого.
надеяться, что проблема ясен
Вопрос в том, что у вас установлено ваше приложение на сервере, а затем вы хотите обновлять файлы .DLL автоматически, если будет изменение номера версии? Если это так, возможно получить сборки, которые выводятся из ваших непрерывных сборок в одну папку, тогда я могу взглянуть на отправку решения :) – LukeHennerley
Нет, задача развертывания выполняется скриптом, который просто помещает патч в ftp и удаленные серверы автоматически загружают любой новый патч и применяют их. Если у вас есть какая-то идея, мы можем реализовать ее вместо скрипта – puneet
Это именно то, что я хочу сделать. Создайте патчи, установив, какие DLL-файлы были изменены с момента последней сборки и помещены в предопределенную структуру каталогов. – puneet