Распаковка MSI в .Net - PullRequest
       39

Распаковка MSI в .Net

2 голосов
/ 11 ноября 2008

У меня есть установщик, который развертывает веб-службы в IIS. После того, как это закончено, запускается настраиваемое действие, которое обновляет базу данных сценариями, необходимыми веб-сервисам. Сценарии в настоящее время также развертываются в IIS, поскольку они являются частью проекта .net. Как я могу настроить процесс установки, чтобы сценарии не были частью проекта и распаковывались из MSI, чтобы мои пользовательские действия могли получить к ним доступ?

Ответы [ 2 ]

2 голосов
/ 13 ноября 2008

Если вы используете стандартные проекты установки Visual Studio, сделайте следующее:

  1. Добавьте ваши скрипты в виде файлов в ваш проект установки
  2. Щелкните правой кнопкой мыши по файлам
  3. Выберите «Свойства»
  4. Измените свойство PackageAs на vsdpaLoose

Ваши файлы теперь будут выводиться вместе с MSI, поэтому будут доступны в любое время.

0 голосов
/ 11 ноября 2008

Используя WIX, извините, не знаю, что вы используете. Я бы создал

<Binary Id="webServiceScript.sql" src="[DirectoryToFile]\webServiceDataScript.sql" />

После настройки ЦС для запуска скрипта

<CustomAction Id="CallCmd" Value="[Path_to_Exe_Folder][Your_EXE_TO_RUN_SCRIPT_HERE]" />

<CustomAction Id="RunCmd" ExeCommand="webServiceScript.sql" BinaryKey="webServiceScript.sql" Return="Ignore" />

Затем просто настройте последовательность установки

<InstallExecuteSequence>
  <Custom Action="CallCmd" Before="InstallFinalize" />
  <Custom Action="RunCmd" After="CallCmd" />
</InstallExecuteSequence>
...