Procedimiento Instalar y desinstalar servicios de Windows
Nota:
Este artículo no se aplica a servicios hospedados en .NET. Para el contenido más reciente sobre los servicios de Windows que utilizan Microsoft.Extensions.Hosting.BackgroundService y la plantilla del servicio de trabajo, consulte:
Si va a desarrollar un servicio de Windows con .NET Framework, puede instalar rápidamente la aplicación de servicio mediante la utilidad de la línea de comandos InstallUtil.exe o PowerShell. Si quiere publicar un servicio de Windows que los usuarios puedan instalar y desinstalar, use el conjunto de herramientas WiX gratuito u otras herramientas comerciales como Advanced Installer e InstallShield. Para más información, consulte Creación de un paquete de instalador (escritorio de Windows).
Advertencia
Si desea desinstalar un servicio que no ha desarrollado desde el equipo, no siga los pasos descritos en este artículo. En su lugar, averigüe qué paquete de software o programa ha instalado el servicio y, después, haga clic en Aplicaciones en Configuración para desinstalar ese programa. Muchos servicios forman parte de Windows; si los quita, podría causar inestabilidad en el sistema.
Para seguir los pasos de este artículo, primero debe agregar un instalador del servicio al servicio de Windows. Para obtener más información, vea Tutorial: Creación de una aplicación de un servicio de Windows.
Los proyectos de servicio de Windows no se pueden ejecutar directamente desde el entorno de desarrollo de Visual Studio presionando F5. Antes de poder ejecutar el proyecto, tendrá que instalar el servicio en el proyecto.
Sugerencia
Puede usar el Explorador de servidores para comprobar que el servicio se ha instalado o desinstalado.
Instalación mediante la utilidad InstallUtil.exe
Abra el símbolo del sistema para desarrolladores para VS.
En el menú Inicio, seleccione Todas las aplicaciones, expanda Visual Studio <versión> y, a continuación, seleccione Símbolo del sistema para desarrolladores para VS <versión>.
Vaya al directorio donde se encuentra el archivo ejecutable compilado del proyecto.
Ejecute InstallUtil.exe desde la línea de comandos con el archivo ejecutable del proyecto como argumento:
installutil <yourproject>.exe
Si usa el Símbolo del sistema para desarrolladores de Visual Studio, InstallUtil.exe ya está en la ruta de acceso del sistema. En caso contrario, puede agregarlo a la ruta de acceso o usar la ruta de acceso completa para invocarlo. Esta herramienta se instala con .NET Framework en %WINDIR%\Microsoft.NET\Framework[64]\<framework_version>.
Desinstalación mediante la utilidad InstallUtil.exe
Abra Símbolo del sistema para desarrolladores para VS.
En el menú Inicio, seleccione Todas las aplicaciones, expanda Visual Studio <versión> y, a continuación, seleccione Símbolo del sistema para desarrolladores para VS <versión>.
Ejecute InstallUtil.exe desde el símbolo del sistema con la opción
/uninstall
y el archivo ejecutable del proyecto:installutil /uninstall <yourproject>.exe
Después de eliminar el archivo ejecutable de un servicio, es posible que el servicio permanezca en el Registro. En ese caso, use el comando sc delete para quitar la entrada del servicio del Registro.
Instalación mediante PowerShell
En el menú Inicio, busque Windows PowerShell y, a continuación, selecciónelo.
Vaya al directorio donde se encuentra el archivo ejecutable compilado del proyecto.
Ejecute el cmdlet New-Service con un nombre de servicio y el archivo ejecutable del proyecto como argumentos:
New-Service -Name "YourServiceName" -BinaryPathName <yourproject>.exe
Desinstalar usando PowerShell
En el menú Inicio, busque Windows PowerShell y, a continuación, selecciónelo.
Ejecute el cmdlet Remove-Service con el nombre del servicio como argumento:
Remove-Service -Name "YourServiceName"
Nota
Debe tener PowerShell 6 o una versión posterior para usar este cmdlet. Para obtener más información sobre cómo actualizar PowerShell, consulte Instalación de PowerShell en Windows.
Después de eliminar el archivo ejecutable de un servicio, es posible que el servicio permanezca en el Registro. En ese caso, use el comando sc delete para quitar la entrada del servicio del Registro.
sc.exe delete "YourServiceName"