Основное отличие заключается в том, что InstallUtil - это не утилита, предназначенная для установки службы, а средство общего назначения. На страницах MSDN видно, что:
"Программа установки - это утилита командной строки, которая позволяет вам
установить и удалить ресурсы сервера, выполнив установщик
компоненты в указанных сборках. Этот инструмент работает в сочетании
с классами в пространстве имен System.Configuration.Install. "
Так что он может установить сервис, но у него есть много-много других преимуществ. Создание исполняемых файлов на основе Класс установщика дает вам программный контроль над всей процедурой установки / удаления. ServiceInstaller и ServiceProcessInstaller , например, используются для установки службы.
Утилита 'Sc' используется для управления службами, а команда 'create' просто создает службу на основе выбранного исполняемого файла.
В вашем примере
1. Он не предназначен для установки с InstallUtil , и об ошибке должно быть достаточно ясно.
2. InstallUtil завершается ошибкой из-за ошибки в коде установки и использовании sc
create вероятно создаст неисправный сервис для вас. Проверьте в {exe_name} .InstallLog для деталей.