Esta carpeta contiene scripts PowerShell para gestionar la API de NexusCad como Servicio Windows.
| Script | Descripción | Requiere Admin |
|---|---|---|
install-api-service.ps1 |
Instala la API como servicio Windows | ✅ Sí |
start-api-service.ps1 |
Inicia el servicio | No |
stop-api-service.ps1 |
Detiene el servicio | No |
update-api-service.ps1 |
Actualiza el servicio con últimos cambios | ✅ Sí |
uninstall-api-service.ps1 |
Desinstala completamente el servicio | ✅ Sí |
- Estás en entorno de producción / usuario final
- Quieres que la API esté siempre disponible
- El Admin necesita conectarse sin iniciar procesos manualmente
- Estás desarrollando / debuggeando
- Necesitas hacer cambios frecuentes en el código
- Quieres ver la salida de consola en tiempo real
# Ejecutar PowerShell como Administrador
.\dev-scripts\install-api-service.ps1Esto:
- Publica la API en
C:\NexusCad\Api - Crea el servicio Windows
NexusCadApi - Lo configura para inicio automático
- Lo arranca inmediatamente
# Opción 1: Visual Studio
# - Configurar Multiple Startup Projects (Api + Admin)
# - Presionar F5
# Opción 2: Terminales separadas
dotnet run --project src/NexusCad.Api # Terminal 1
dotnet run --project src/NexusCad.Admin # Terminal 2# 1. Detener servicio
.\dev-scripts\stop-api-service.ps1
# 2. Ahora puedes trabajar normalmente
dotnet build
dotnet run --project src/NexusCad.Api
# 3. Al terminar, actualizar el servicio
.\dev-scripts\update-api-service.ps1¿Por qué? El servicio mantiene los archivos DLL bloqueados, impidiendo la compilación.
Instalación inicial del servicio.
Uso:
# Como Administrador
.\dev-scripts\install-api-service.ps1Lo que hace:
- ✅ Publica la API en modo Release
- ✅ Crea el servicio con
sc.exe - ✅ Lo configura para inicio automático
- ✅ Lo arranca inmediatamente
Resultado:
- Servicio:
NexusCadApi - Path:
C:\NexusCad\Api\NexusCad.Api.exe - URL:
http://localhost:5140 - Swagger:
http://localhost:5140/swagger
Detiene el servicio para permitir desarrollo.
Uso:
.\dev-scripts\stop-api-service.ps1Cuándo usarlo:
- Antes de
dotnet buildodotnet run - Antes de hacer cambios en el código de la API
- Cuando necesitas debuggear en Visual Studio
No requiere permisos de Administrador.
Arranca el servicio manualmente.
Uso:
.\dev-scripts\start-api-service.ps1Cuándo usarlo:
- Después de reiniciar el sistema (aunque arranca automáticamente)
- Después de detenerlo manualmente para desarrollo
No requiere permisos de Administrador.
Actualiza el servicio con los últimos cambios del código.
Uso:
# Como Administrador
.\dev-scripts\update-api-service.ps1Lo que hace:
- ⏸️ Detiene el servicio
- 📦 Publica la última versión de la API
- 🚀 Reinicia el servicio
Cuándo usarlo:
- Después de hacer cambios en la API
- Después de un
git pullcon actualizaciones - Antes de entregar al usuario final
Elimina completamente el servicio.
Uso:
# Como Administrador
.\dev-scripts\uninstall-api-service.ps1Lo que hace:
- 🛑 Detiene el servicio
- 🗑️ Elimina el servicio de Windows
- ❓ Pregunta si deseas borrar los archivos en
C:\NexusCad\Api
Cuándo usarlo:
- Cuando terminas de desarrollar y no necesitas el servicio
- Para limpiar la instalación completa
- Antes de reinstalar desde cero
# Comprobar si está instalado y su estado
Get-Service NexusCadApi
# Detalles completos
sc.exe query NexusCadApi
# Ver logs (si Serilog está configurado para Event Viewer)
Get-EventLog -LogName Application -Source NexusCadApi -Newest 20Causa: El servicio está corriendo y bloquea los DLLs.
Solución:
.\dev-scripts\stop-api-service.ps1
dotnet buildCausa: Error en el código o configuración.
Diagnóstico:
# Ver logs del Event Viewer
Get-EventLog -LogName Application -Newest 10
# Intentar ejecutar manualmente para ver el error
C:\NexusCad\Api\NexusCad.Api.exeCausa: Proceso colgado.
Solución:
# Ver el PID del proceso
sc.exe query NexusCadApi
# Forzar cierre
Stop-Process -Name "NexusCad.Api" -Force
# Reintentar eliminar el servicio
sc.exe delete NexusCadApi# NO instalar el servicio
# Usar Visual Studio F5 o dotnet run# 1. Comprobar que todo compila
dotnet build -c Release
# 2. Instalar el servicio
.\dev-scripts\install-api-service.ps1
# 3. Verificar
Start-Process "http://localhost:5140/swagger"# 1. Detener
.\dev-scripts\stop-api-service.ps1
# 2. Hacer cambios y compilar
# ... editar código ...
dotnet build
# 3. Actualizar servicio
.\dev-scripts\update-api-service.ps1- Documentación oficial de sc.exe
- .NET Worker Services
- CLAUDE.md - Guía general de desarrollo
- PLAN.md - Arquitectura y despliegue
Última actualización: Fase 1 - Sistema de servicio Windows documentado