2009-09-08 4 views
2

я мог бы сделать некоторые указатели, примеры кода или ссылки, которые могут помочь мне сделать следующее в файл MSBuild, чтобы ускорить процесс развертывания ..MSBuild файла для процесса развертывания

Этот сценарий предполагает получение разработчиков " локальная»версия на„сервер развития“..

  1. Приращение разработчики локальных веб-приложений версия номер сборки
  2. опубликовать разработчики локальных файлов веб-приложений где-то
  3. .rar в publsihed файлов или folde г в формате V [IncrementedAssemblyNumber] .rar
  4. Скопируйте .rar где-то
  5. резервного копирования (.rar) существующую папку живой сайт (находится в другом месте) в формате Pre_v [IncrementedAssemblyNumber] .rar
  6. Перемещение резервное копирование .rar в папку/Backup.
  7. Заменять веб-разработки файлы с опубликованными локальными веб-файлами

должен быть простым для всех тех, кто MsBuild Gurus там.

Как я уже сказал, ответы или «Хорошие и применимые» ссылки будут высоко оценены.

Также я думаю о том, чтобы получить одну из книг MSbuild. Из того, что я могу сказать, есть 2, возможно, 3 претендента. Я не использую TFS. Может ли кто-нибудь рекомендовать книгу для начала MSBUILD? В идеале от людей, которые прочитали более одной книги по этому вопросу.

Приветствия,

- Lee

+0

Немного разочарованный никто не получил удар по этому или, по крайней мере, дал мне указатели. –

ответ

6

Я думаю, что для части сборки вы, конечно, должны использовать MSBuild. Для аспекта развертывания вы можете взглянуть на Microsoft Web Deployment Tool (MSDeploy). Он поддерживает резервное копирование веб-сайтов (через .zip-файлы) и обновление. Я хотел бы создать файл MSBuild, который вызывается в MSDeploy. Также PowerShell будет хорошим драйвером, который вызывает MSDeploy. Вы можете выполнять одни и те же задачи только с MSBuild, но это будет сложнее.

Аспект вашего сообщения, который заставляет меня задуматься, - это ваша ссылка на «локальную сеть разработчиков ...». Если это возможно, у вас должен быть сервер сборки, который отвечает за создание всех ваших продуктов, которые будут работать в среде, отличной от dev. Как упоминалось, хороший бесплатный сервер CI - CruiseControl.NET.

О книгах вы можете взглянуть на мой Inside the Microsoft Build Engine:Using MSBuild and Team Foundation Build. Если вы не используете TFS (и для этого Team Build), все в порядке. Главы MSBuild (9 из 12) не зависят от TFS.

+0

Cheers Sayed. Мы действительно используем CCNET. Ваша книга находится в моем списке пожеланий от Amazon. Это печально? - Lee –

0

- Edit: Предположим, что вы используете .NET ...

Используйте NAnt и использовать NAnt Contrib вы звоните MSBuild. Это даст вам основную систему :)

- Edit

Вы должны, конечно, также получить себе сервер CI, например, CruiseControl.NET, и подключить его к системе управления исходным кодом, как SVN, а затем сделайте свою работу над этим.

+0

Cheers шелковистой. У нас есть CCNET. Я рассмотрю ваше предложение. - Lee –

+0

FWIW, я также работаю над (как мы говорим) системой автоматического развертывания: http://www.mirios.com.au/dashy/ (в настоящее время бесплатно для скачивания). Не стесняйтесь дать ему трещину (или подождите несколько недель, пока я официально не опубликую ее). –

0

Код не должен переходить из окна разработчика на сервер развертывания. Он должен перейти от источника управления через CI (например, CruiseControl.Net) к вашей среде развертывания.

  1. Установите CruiseControl.NET (CC.Net)
  2. провода до CC.Net тянуть файлы исходного управления вплоть до CC.Net машины. Для этого используйте задачу CC.NET. Существует задача SVN, задача TFS и т. Д.
  3. Создайте файл определения msbuild (.proj), чтобы выполнить большую часть логики сборки. Я поместил файл рядом с моим .sln-файлом ... в исходном элементе управления.
  4. Файл .proj будет создавать ваш .sln.
  5. Добавить задачи в файл .proj, чтобы zip (rar) ваши артефакты сборки (выходы сборки), публиковать, что бы вы ни делали.
  6. Вы можете настроить несколько задач «публикации» CC.NET. Чаще всего основной из них - отправить по электронной почте группу людей, с которой работала/не работала.

Если вы поставили большую часть своей логики сборки в файл .proj, если вы когда-либо переходите из CC.NET в другой инструмент CI, то объем усилий для этого минимален. Используя вышеизложенное, вам нужно только поменять местами файлы управления исходным кодом и несколько опубликованных событий (собственные задачи CC.NET). Файл .proj переносится на другие инструменты CI. Мы перешли от CC.NET к TFS, и потому, что у меня было это предусмотрение, изменение было минимальным. Если бы я использовал специальные задачи CC.NET вместо .proj, переход был бы болезненным.

http://mikefourie.github.io/MSBuildExtensionPack/

и

https://github.com/loresoft/msbuildtasks

имеют много дополнительных функциональных возможностей. Большинство запросов msbuild были закодированы кем-то там.

И если нажатие наступает, вы всегда можете создать пользовательскую задачу msbuild. Но это редкость в наши дни.

Существует основной план.

+0

Ответ Sayed является отличным. Я просто добавляю немного еды для размышлений. – granadaCoder

+0

Да, в то время была причина. Но теперь мы используем TeamCity и Octopus Deploy, поэтому yey –

Смежные вопросы