InstallShield 2016 не устанавливает Сервис
Я пытаюсь настроить и установить службу в InstallShield 2016. Я добавил службу с помощью мастера компонентов. Когда я запустил установщик, на моем экране появилось всплывающее окно Window Installer с различными параметрами, которые можно было передать службе. Как я передал эти опции в сервис? Я попытался создать службу с помощью мастера компонентов и без мастера компонентов. В обоих случаях это был тот же результат, что и описанный выше. Я безуспешно искал объяснения, как это сделать.
Скриншоты настроек и всплывающее окно:
3 ответа
Наконец я смог заставить это работать. Я новичок в Installshield. Это был мой самый первый раз, используя его.
- Комментарий Майкла Урмана был очень полезным.
Я прочитал документацию о том, как запустить MSI с помощью msiexec.exe, и я все еще в замешательстве. Согласно документации, отложенное действие должно быть между InstallInitialize и InstallFinalize, а обработка возврата должна быть синхронной (код завершения ожидания). Однако система жаловалась на то, что выполняется другая установка, поэтому она не будет устанавливать службу.
Чтобы обойти это, я установил рабочий каталог на [service] (папка, содержащая мои файлы msi и exe), я установил в командной строке msiexec.exe /i "[SERVICE]UserAgent.msi" /qn, Я устанавливаю возвращаемую обработку на Асинхронный (без ожидания завершения), устанавливаю последовательность Exec после перезагрузки по расписанию и добавляю условие, чтобы проверить, не установлено ли.
С этими опциями я смог беззвучно установить сервис. Тем не менее, он не будет удален при удалении приложения. Это должно быть вручную удалить
Это диалоговое окно ошибки отображается, когда командная строка msiexec неверна. Непонятно, что вы делаете, но вы не запускаете команду msiexec для службы или любого исполняемого файла. Вы создаете MSI-файл, затем устанавливаете его, и этот MSI-файл устанавливает службу. Даже если вы запускаете командную строку msiexec для созданного вами MSI-файла, это неверно.
Для записей:
Проверьте, помечен ли файл как «ключевой файл». Это была моя вина.