У меня есть служба Windows .Net. Я хочу создать установщик для установки этой службы Windows.
По сути, он должен делать следующее:
- Пакет
installutil.exe
(Требуется?) - Запустите
installutil.exe
MyService.exe - Запустить MyService
Кроме того, я хочу предоставить программу удаления, которая выполняет следующую команду:
installutil.exe /u MyService.exe
Как это сделать с помощью Inno Setup?
c#
windows-services
inno-setup
Devnull
источник
источник
Ответы:
Вам не нужно
installutil.exe
и, вероятно, у вас даже нет прав на его распространение.Вот как я это делаю в своем приложении:
По сути, вы можете установить / удалить свою службу самостоятельно, используя,
ManagedInstallerClass
как показано в моем примере.Тогда просто нужно добавить в ваш сценарий InnoSetup что-то вроде этого:
источник
Filename: "net.exe"; Parameters: "start WinServ"
. если это не сработает, вы можете просто добавить еще один переключатель - start в свое приложение C # и запустить службу Windows непосредственно из программы, используя класс ServiceController ( msdn.microsoft.com/en-us/library/… ).using System.Reflection;
или измененияAssembly
кSystem.Reflection.Assembly
в коде выше.Вот как я это сделал:
По-видимому, в программе установки Inno есть следующие константы для обращения к папке .NET в вашей системе:
Более подробная информация доступна здесь .
источник
Ты можешь использовать
создать услугу. См. " Sc.exe " о том, как запустить, остановить, проверить статус службы, удалить службу и т. Д.
источник
Если вы хотите избежать перезагрузок при обновлении пользователем, вам необходимо остановить службу перед копированием exe и запустить снова после.
Для этого в Сервисе есть несколько скриптовых функций - Функции для запуска, остановки, установки, удаления службы.
источник