Сценарий автоматического выпуска и проекты установки Visual Studio

Я думаю, что большинство людей здесь понимают важность полностью автоматизированных сборок.

Проблема в том, что один из наших проектов теперь использует интегрированный проект установки Visual Studio (vdproj) и недавно был перенесен в Visual Studio 2008. К сожалению, они не собираются в MSBuild, и вызов devenv.exe / build в 2008 просто дает сбой, по всей видимости, так оно и есть на всех многоядерных компьютерах (!!!). Итак, теперь у меня есть выбор: либо вернуться к .Net 2.0 и 2005, либо просто отказаться от развертывания Visual Studio, но сначала я хотел бы получить второе мнение.

Кто-нибудь знает другой автоматизированный способ создания .vdproj, который не потребует от нас открытия среды IDE и щелчка мышью?


Я имел в виду WiX, когда говорил, что мы откажемся от vdproj. У вас есть опыт работы с этим, хорошие вещи, предостережение?

Ответов (3)

Решение

Недорогое решение - перейти на использование ClickOnce, которое можно автоматизировать с помощью MSBuild. Но если вам все еще нужно создать пакет установщика Windows, вам нужно будет преобразовать свой проект в WiX (довольно прямолинейно) и построить его с помощью своего решения.

Это поможет вам начать: автоматизировать выпуски с помощью MSBuild и Windows Installer XML.

Я немного раньше использовал WiX, и в целом я обнаружил, что это здорово, когда вы понимаете, что делать, но это крутая кривая обучения. Если вы потратите солидный день на изучение руководства по WiX, вы сможете получить 80% вашей настройки.

Учебное пособие по WiX Toolset

У меня было такое же требование, и в итоге я использовал то, что предлагается в этих двух ссылках

Блог Дэвида Уильямса

Статья MSDN

По сути, поскольку Team Build сама по себе не создает за вас проекты установки, при таком подходе вы добавляете новый этап сборки после завершения обычной сборки. На этом шаге запускается вторая сборка путем запуска devenv.exe. IDE создаст ваши установочные файлы. Дополнительная сборка стоит немного дороже, но она нужна нам только для сборок, которые собирались выпустить. Эта настройка может потребоваться не более чем для ежедневной сборки, в нашей сборке CI не нужно создавать установочные файлы каждый раз.

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

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