Вопрос

Я настроил Cruisecontrol.net cs для своего проекта, который имеет ряд модулей и компонентов, которые собираются и сохраняются в папке по дате на машине сборки. Дело в том, что мне нужно выполнить настройку для приложения (wpf non web ), и дело в том, что, поскольку существует ряд модулей и различных решений, которые создают и, наконец, создают продукт (dll) и т. д. Любые предложения по разработке стратегии установки, которая будет создавать ночную установку, а также какой установочный пакет использовать (что-то более простое или, по вашему мнению, что заняло бы меньше времени) Я планировал установить на сборочную машину что-нибудь, что бы забирало файлы из папки (какой папки?) и производило настройку...

Ссылка, иллюстрирующая эту мысль, Ночная сборка Firefox.

Любой совет, ребята

Заранее спасибо.

Это было полезно?

Решение

Я считаю, что эта система работает очень хорошо для меня.Я предполагаю, что это VS 2005/2008 и C#, но тот же принцип работает и для других компиляторов и языков, просто замените свой собственный вариант.

Использование CC.NET

  • Проверьте весь источник с помощью ScheduleTrigger, если несколько мест используют
  • Используйте MSBuild для сборки каждого необходимого решения (при условии, что VS 2005/2008), или nant, или любой другой инструмент сборки, который лучше всего подходит для компиляции проектов компонентов.
  • Используйте MSBuild для создания установщиков WIX, хотя я также использовал MSBuild для создания установок InnoSetup и Wise Installation Studio.
  • Используйте MSBuild для обновления файлов AssemblyInfo.cs для любых проектов, которыми должен управлять сценарий сборки.
  • Используйте командную строку системы управления версиями для возврата обновленных файлов AssemblyInfo.ca.
  • Наконец, используйте MSBuild, чтобы скопировать выходной установщик в новую папку на сервере удаления.Я использую отметку времени из основного исполняемого файла продукта, чтобы создать отметку времени вместе с сгенерированным номером версии для названия папки (../Builds/Product/v.M.m.r.p - DATE TIME/)

Мне также нравится генерировать электронное письмо с уведомлением о сборке в конце.

Что касается рекомендации установщика, есть компромисс.

Для быстрой генерации используйте установщик сценариев, например NSIS или Inno Setup.Недостатком является несовместимость с установщиком Windows.

Для продуктов установщика Windows использование Wise или InstallShield позволяет быстрее создать их с первого раза, но это дорогостоящие инструменты, и я считаю, что обслуживание моих сценариев установки требует больших затрат.Использование WIX в первый раз обычно обходится намного дороже (кривая обучения + налог на угловые скобки), но затем его легче поддерживать, поскольку все это XML, а инструменты командной строки просты в использовании.

Я добился определенного успеха в объединении установки с помощью Inno Setup, поскольку объединение и связывание установщика Windows (по крайней мере, для Windows XP) - это настоящая боль.

Другие советы

Мы использовали Visual Build и Wise для создания нашего установщика и обнаружили, что это очень интуитивно понятно и легко создать наборы с. Фактический проект CC.NET делает несколько вещей, во-первых, он проверяет, чтобы все необходимые детали были успешно собраны с тех пор, как мы в последний раз создавали установщик (мы разрешаем установку по требованию, а также по расписанию каждую ночь), если они не были успешно собраны, мы перестраиваем все компоненты, после того, как они были (или если они уже были) построены успешно, мы затем вызываем VisualBUildPro и позволяем ему создать установщик. Visual Build Pro, обрабатывает все копирование и вызов Wise для фактического установщика. Как только установщик создан, мы публикуем его по назначению, где все ожидают. Мы также изменили XSL для издателя электронной почты на сервере сборки, чтобы каждый мог получить ссылку на новейший установщик после его публикации.

Несколько вещей о ночных сборках, если вы можете, попробуйте настроить сервер символов и попросите каждого установщика загружать символы с информацией об исходном коде до них. Это также хороший момент для создания любой документации (D'Oxygen; SandCastle) и времени для запуска ПОЛНОГО набора тестов, который у вас есть.

Ознакомьтесь с WiX . Этот набор инструментов позволяет определить проект установки в форме XML, а затем генерирует msi из этого XML. Тот факт, что проект определен в XML, дает вам большую гибкость для изменения этого XML на лету во время сборки (при необходимости).

Он интегрируется с MSBuild - см. эту статью , а также хорошо работает с NAnt - см. эту статью .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top