without visual studio setup reconoce net interno externo desde create como comando .net windows-services installutil

.net - visual - windows service installer



Instalación del servicio de Windows con SC.exe o InstallUtil.exe. ¿Hay diferencias pero cuáles? (5)

SC.exe e InstallUtil instalan / desinstalan servicios de Windows. Pero no parecen funcionar de la misma manera.

¿Cuál es la diferencia?

Por ejemplo, InstallUtil falla (error en algún archivo o dependencia no encontrado), mientras que Sc create instala felizmente el servicio. También añadir a la extrañeza; El servicio no aparece si ejecuto net start en la consola. Pero sí aparece en los servicios de la GUI. Variantes de esto suceden cuando intento desinstalar.

He escrito el servicio y las versiones anteriores funcionan. Dotnet3.5.


Desde la experiencia de uso de la desinstalación: sc.exe en Windows 7 elimina la entrada de la lista inmediatamente, mientras que después de la desinstalación con installutil es necesario reiniciar


La principal diferencia es que InstallUtil no es una utilidad destinada a la instalación del servicio, sino como una herramienta de instalación general. Desde las páginas de MSDN puedes ver que:

"La herramienta del instalador es una utilidad de línea de comandos que le permite instalar y desinstalar recursos del servidor ejecutando los componentes del instalador en conjuntos específicos. Esta herramienta funciona junto con las clases en el espacio de nombres System.Configuration.Install".

Así que puede instalar el servicio pero tiene muchos otros muchos beneficios. La creación de ejecutables basados ​​en la Clase de instalador le brinda control programático de todo el procedimiento de instalación / desinstalación. ServiceInstaller y ServiceProcessInstaller , por ejemplo, se utilizan para la instalación del servicio.

La utilidad ''Sc'' se usa para el control del servicio y el comando ''crear'' creará un servicio basado en el ejecutable elegido.

En tu ejemplo
1. No se debe instalar con InstallUtil y la respuesta de error debe ser bastante clara al respecto.
2. InstallUtil falla debido a un error en el código de instalación y el uso de sc create probablemente creará un servicio defectuoso para usted. Verifique en {exe_name} .InstallLog para más detalles.


Prefiero sc.exe sobre installutil.exe millones de veces.

InstallUtil le obliga a agregar la terrible clase ProjectInstaller (creo) y el código duro allí el nombre del servicio y la descripción del servicio.

Esto hace que sea muy difícil poner dos versiones del mismo servicio ejecutándose en la misma máquina al mismo tiempo.

Es por eso que simplemente no uso InstallUtil.exe en absoluto. También debido a respuestas anteriores: necesita que esté en su paquete de implementación. sc.exe ya está en cualquier Windows XP y superior (creo).


Sí, instalar un servicio no es particularmente complicado. Solo se necesita escribir un puñado de claves de registro. Puede echar un vistazo a Regedit.exe, navegar a HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / services.

Sc.exe puede escribir estas claves también, usando los argumentos de línea de comando provistos. Sin embargo, esta no es la manera correcta de hacerlo. El punto de InstallUtil.exe es que puede activar el código de instalación personalizado . Código que escribió el autor del servicio. Lo que no es raro, los servicios tienden a rellenar la información de configuración en sus claves de registro para su propio uso. Verás mucha evidencia de eso cuando mires con Regedit.


Si bien InstallUtil es la forma preferida de utilizar los servicios .NET, una de sus deficiencias es que no detectará redirecciones de enlaces desde su app.config, que en ciertas circunstancias puede hacer que la instalación falle. Ahí es donde usar SC puede obtener algún beneficio, a costa de no poder ejecutar el código en el momento de la instalación.

Desafortunadamente para el OP, TopShelf no existía en el momento de su pregunta. Funciona alrededor de las deficiencias de SC y InstallUtil, y permite que el servicio se inicie con el depurador adjunto al iniciarlo en Visual Studio. Además, es mucho más fácil escribir myservice install que tener que profundizar en la carpeta específica de InstallUtil, o escribir una tonelada de parámetros para SC.