Я точно знаю, что инструмент InstallUtil.exe работает вместе с вашим пользовательским классом установщика, который является производным от класса установщика. С помощью отражения инструмент InstallUtil.exe находит методы установки и удаления и устанавливает все, что вы определяете в своем коде. Не понимаю, где в процессе регистрации в ОС регистрируется служба windows. Единственный способ запустить службу при загрузке компьютера - это запустить службу ОС, а это значит, что ее нужно где-то зарегистрировать, верно?
Я просмотрел исходный код для класса установщика и не нашел ничего похожего на запись в файл или изменение в реестре или что-то еще.
Код, кажется, вызывает эти делегаты, но я не могу понять их цель .
private InstallEventHandler _afterCommitHandler;
private InstallEventHandler _afterInstallHandler;
private InstallEventHandler _afterRollbackHandler;
private InstallEventHandler _afterUninstallHandler;
private InstallEventHandler _beforeCommitHandler;
private InstallEventHandler _beforeInstallHandler;
private InstallEventHandler _beforeRollbackHandler;
private InstallEventHandler _beforeUninstallHandler;
Я подумал, что, возможно, инструмент InstallUtil.exe использует отражение для сортировки выполнения своего собственного кода при вызове этих делегатов, и что этот код может затем зарегистрировать службу в windows, но после прочтения этого сообщения о stackoverflow я не уверен. Очевидно, для этого метода не требуется инструмент InstallUtil.exe, но я не могу найти здесь никакого регистрационного кода. *