나는 늦었지만 대안을 추가하고 싶습니다. 이상하게 보일 수도 있지만 다른 방법은 보지 못했습니다.
매일 밤 CI 프로세스에 Windows 서비스를 설치하면서 항상 작동하고 완전히 자동화 된 무언가가 필요했습니다. 어떤 이유로 서비스를 제거한 후에는 서비스가 항상 오랫동안 (5 분 이상) 삭제 된 것으로 표시되었습니다. 따라서 재설치 배치 스크립트를 확장하여 서비스가 실제로 삭제되었는지 확인했습니다 (단순 버전).
REM Stop the service first
net stop My-Socket-Server
REM Same as installutil.exe, just implemented in the service
My.Socket.Server.exe /u
:loop1
REM Easy way to wait for 5 seconds
ping 192.0.2.2 -n 1 -w 5000 > nul
sc delete My-Socket-Server
echo %date% %time%: Trying to delete service.
if errorlevel 1072 goto :loop1
REM Just for output purposes, typically I get that the service does not exist
sc query My-Socket-Server
REM Installing the new service, same as installutil.exe but in code
My.Socket.Server.exe /i
REM Start the new service
net start My-Socket-Server
내가 볼 수있는 것은 서비스가 마침내 통과 할 때까지 약 5 분 (!) 동안 삭제 표시되어 있다는 것입니다. 마지막으로 더 이상 수동 개입이 필요하지 않습니다. 나중에 스크립트를 확장하여 특정 시간 (예 : 30 분 후 알림) 후에 무언가가 발생하도록합니다.