Установка SQL Server Express 2014 с помощью Wix Burn
Я пытаюсь запустить автоматическую установку SQL Server Express 2014 в цепочке записанных пакетов, и у меня постоянно возникают проблемы, поэтому я ищу совет.
Прямо сейчас я устанавливаю его, запустив самораспаковывающийся
SQLEXPR_x64_ENU.exe
с переключателями, но с этим методом есть две проблемы: первая заключается в том, что окно извлечения не отображается перед моим пользовательским интерфейсом загрузчика, а во-вторых, у меня нет возможности указать каталог извлечения по умолчанию. Здесь/X:"C:/Temp"
переключиться, но если я использую это, то основнойSetup.exe
не запускается после завершения извлечения.Я попытался решить эту проблему, распаковав ее и включив все необходимые файлы в группу полезных данных. Это работает, но время компиляции и установки неприемлемо медленно из-за всех маленьких файлов, которые он должен извлечь и проверить.
Я также пытался просто ссылаться на
Setup.exe
в извлеченной папке и оставил его несжатым, чтобы иметь файлы в подкаталоге в корне каталога установщика, но это вызвало у меня некоторые проблемы с запуском.Я собирался установить его с помощью скриптов, но чувствую, что это уродливый подход к проблеме, и я избегаю ее, как чумы, но я понимаю, что это возможно.
Мне было бы интересно услышать, как другие справились с этим, и любые советы будут с благодарностью.
1 ответ
Мы решили эту проблему с помощью нашего управляемого приложения начальной загрузки следующим образом.
Sql Server 2014 Express с пакетом обновления 1 (SP1) решил проблему, связанную с переключателем /qs. Мы можем использовать /qs с /x для указания папки извлечения, и извлечение продолжается без ввода данных пользователем.
Однако, как вы заметили, это просто извлекает файлы и не запускает setup.exe. Хорошей новостью является то, что извлеченные файлы все еще находятся в папке, указанной с помощью ключа /x.
В нашем управляемом приложении начальной загрузки мы обрабатываем событие ExecutePackageComplete. Когда пакет Sql Server завершен (все, что он сделал, это извлек файлы), мы используем System.Diagnostics.Process.Start для запуска Sql Server setup.exe.
После завершения установки мы удаляем папку извлечения.
Это не то, что мы думали, что будем делать, когда начинали, но, по крайней мере, это работает.
Дополнительная информация:
Как вы также упомянули, окно прогресса процесса извлечения открывается за окном приложения начальной загрузки.
Я не уверен, что в загрузчике вернуло окно загрузчика. Наш пользовательский интерфейс имеет индикатор выполнения, поэтому, возможно, событие прогресса запускается после запуска экстрактора.
Мы использовали таймер, чтобы дать загрузчику время для обработки любых событий, затем мы перечисляем Process.GetProcesses и ищем ProcessName, содержащий "извлечение sql". Когда мы находим его, мы используем SetWindowPos, чтобы вывести его на передний план.