Ответ 1
Возможно, что исполняемый файл фактически содержит несколько сервисов. В таком случае у вас должен быть ServiceInstaller, который представляет каждую службу, но один ServiceProcessInstaller, который представляет исполняемый файл.
Каждая услуга реализована (в .NET) как другой класс. Но несколько сервисов (если они все начаты) будут делиться AppDomain (я считаю). Для вас, вероятно, довольно редко требуется такая настройка, и в большинстве случаев есть 1-1 сопоставление между исполняемыми файлами и службами (поэтому в исполняемом файле должен быть только один ServiceInstaller и ServiceProcessInstaller).