Подтвердить что ты не робот

Установка службы Windows с помощью SC.exe или InstallUtil.exe - есть разница, но что?

SC.exe и InstallUtil - устанавливать и удалять службы Windows. Но они, похоже, не работают одинаково.

В чем разница?


Например, InstallUtil не работает (некоторая ошибка файла или зависимости не найдена), в то время как Sc создает счастливую установку службы. Слишком добавить к странности; служба не отображается, если я запускаю пуск сети в консоли. Но это проявляется в графическом интерфейсе служб. Варианты этого случаются, когда я пытаюсь удалить.

Я написал службу самостоятельно и более ранние версии. Dotnet3.5.

4b9b3361

Ответ 1

Да, установка службы не особенно сложна. Это просто требует написания нескольких разделов реестра. Вы можете посмотреть в Regedit.exe, перейдите в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services.

Sc.exe также может писать эти ключи, используя предоставленные аргументы командной строки. Тем не менее, это неправильный способ сделать это. Точка InstallUtil.exe заключается в том, что она может активировать пользовательский код установки. Код, который автор службы написал. Что не так уж редко, службы, как правило, заполняют конфигурационную информацию в своих регистрационных ключах для собственного использования. Вы увидите много доказательств для этого, когда вы посмотрите с Regedit.

Ответ 2

Я предпочитаю sc.exe через installutil.exe миллион раз.

InstallUtil заставляет вас добавить ужасный класс ProjectInstaller (я считаю), а в коде hardcode - имя службы и описание сервиса.

Это очень затрудняет одновременное использование двух версий одной и той же службы на одном компьютере.

Вот почему я просто не использую InstallUtil.exe вообще. Также из-за предыдущих ответов: вам нужно, чтобы это было в вашем пакете развертывания. sc.exe уже находится в любой Windows Xp и выше (я считаю).

Ответ 3

Основное различие заключается в том, что InstallUtil не предназначен для установки сервиса, а как средство общего инсталлятора. На страницах MSDN вы можете увидеть, что:

"Средство Installer - это утилита командной строки, которая позволяет вам установить и удалить серверные ресурсы, выполнив установку компонентов в указанных сборках. Этот инструмент работает совместно с классами в System.Configuration.Install namespace."

Таким образом, он может установить сервис, но он имеет много других преимуществ. Создание исполняемых файлов на основе Installer Class дает вам программный контроль всей процедуры установки/удаления. ServiceInstaller и ServiceProcessInstaller, например, являются используется для установки сервиса.

Утилита

'Sc' используется для управления сервисами, а команда "create" просто создает сервис на основе выбранного исполняемого файла.

В вашем примере
 1. Он не предназначен для установки с InstallUtil, и ответ об ошибке должен быть достаточно ясным.
 2. InstallUtil не удается из-за ошибки в коде установки и использования sc   create, вероятно, создаст для вас неисправный сервис. Подробнее см. В {exe_name}.InstallLog.

Ответ 4

Из опыта использования удаления: sc.exe под Windows 7 немедленно удаляет запись из списка, а после удаления с помощью installutil возникает необходимость перезапуска