Geç kaldım, ancak garip görünebilecek bir alternatif eklemek istiyorum, ancak başka bir yol görmedim:
Windows Hizmetlerimi her gece bir CI işlemine yüklerken her zaman çalışan ve tamamen otomatik bir şeye ihtiyacım vardı. Bazı nedenlerden dolayı, hizmetler kaldırıldıktan sonra daima uzun bir süre (5 dakika veya daha fazla) silinmek üzere işaretlendi. Bu nedenle, hizmetin gerçekten silindiğinden emin olmak için yeniden yükleme toplu komut dosyasını genişlettim (basitleştirilmiş sürüm):
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
Ne görebiliyorum, hizmet sonunda geçene kadar yaklaşık 5 dakika (!) Silinmek için işaretlenmiş olmasıdır. Sonunda, daha fazla manuel müdahaleye ihtiyacım yok. Ben gelecekte bir şey belirli bir süre sonra (örneğin 30 dakika sonra bildirim) olur betiği genişletmek olacaktır.