Использование WiX для создания установщика для веб-сайта ASP.Net MVC - PullRequest
7 голосов
/ 21 января 2012

Кто-нибудь использовал WiX для создания установщика для веб-сайта ASP.Net MVC? Вы собираете файлы из веб-проекта? Я не могу найти хороших примеров того, как это делается. Кажется, что нет документированного способа включить все нужные файлы, только нужные файлы и поместить их в нужное место.

Если вы добавите проект веб-сайта в качестве ссылки в проект установщика и зададите harvest=True в свойствах, тогда все файлы веб-сайта будут захвачены, но есть проблемы:

  • Включены некоторые файлы, которые не следует копировать, например, packages.config, Web.Debug.config Похоже, не существует четкого или простого способа их исключения ( согласно этому обсуждению ).
  • Файл .website dll находится не в том месте, в корневом каталоге, а не в папке bin ( согласно данному обсуждению )

Однако, если вы не используете сбор урожая, у вас есть много файлов для ссылки вручную (например, только под \Content\ у меня есть 58 файлов в 5 папках. Большая часть из этого - jQuery UI), и они время от времени меняются, и ошибки и упущения могут быть легко пропущены из списка файлов WiX. Так что это действительно должно быть синхронизировано автоматически.

Я не согласен с идеей, что список файлов должен быть явно указан в WiX, а не генерироваться динамически (что, как кажется, предлагается при первой ссылке, формулировка не очень ясна). Если мне нужно удалить файл, который я удалю, если из системы управления исходным кодом нет необходимости выполнять дополнительную работу по поддержке двух параллельных, но разных каталогов - одного набора файлов в системе контроля версий и тех же файлов, перечисленных в WiX. должна быть одна версия правды. Все файлы в исходном дереве веб-сайта (с некоторыми известными исключениями, которые не используются во время выполнения, например, packages.config) должны быть включены в развертывание.

По корпоративным причинам у меня нет особого выбора в использовании WiX для этого проекта

Ответы [ 2 ]

4 голосов
/ 22 февраля 2012

В нашем проекте MVC 3 мы используем Paraffin для сбора файлов для установщика. Например, вы можете использовать «-ext», чтобы игнорировать файлы с расширением, «regExExclude», чтобы игнорировать имя файла, совпадающее с регулярным выражением, и т. Д.

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

2 голосов
/ 22 февраля 2012

Я использую написанную мной программу под названием ISWIX, которая делает авторские модули слияния wxs простой операцией перетаскивания, такой как InstallShield. Затем я использую этот модуль слияния в программе установки, которая обрабатывает пользовательский интерфейс и конфигурацию IIS.

У меня также есть автоматизация после сборки, которая извлекает содержимое MSI и сравнивает его с тем, что опубликовал проект. Если есть дельта, я проваливаю сборку, и вы должны либо a) добавить ее в wxs, либо b) удалить ее из публикации.

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

...