25
votes

I am currently developing a Windows Service in .NET 4.0, Visual Studio 2010, Windows 7-32bit. I have an installer project that does the installation for me. When I install the service, uninstall it, and try to install again, I get the following error:

Error 1001. The specified service has been marked for deletion

In Windows XP, the problem was that the Services.msc was open. Closing this window would fix this problem.

However, with Windows 7, the only way I can fix this is to restart. I tried closing all my programs, but the problem still persists.

Does anyone know how to fix this without restarting?

Edit

I have not seen this problem since I stopped using the MSI installer, I use sc.exe instead, to install the services manually. I think this problem might be related to the combination of Visual Studio 2010 and MSI Installer Projects. However, I still don't know what was the culprit of this problem. It turns out that Process Explorer was the culprit.

5
Use Taskmgr.exe, Processes tab and start killing processes one by one until you find the one that still has the registry keys opened. - Hans Passant
I have stopped using MSI to install the service, but instead install manually using sc.exe. Since then, I have not encounted this problem. It seems that this problem might be related to MSI projects, and possibly visual studio. - Mas
Yep its Service Explorer (services.msc) that messes up. - TheVillageIdiot

5 Answers

42
votes

I was facing the same problem on Windows 7 Ultimate edition. Installing the service after closing the Services.msc window solved my problem.

24
votes

Short Answer

  • Close Services.msc
  • Close Process Explorer

Long Answer

After running into this problem again, I went to task manager and started shutting down processes. I eventually found the culprit, it was an internal corporate application used for managing software distribution. I shut it down, and the services were finally gone.

Update

I also found that sometimes Process Explorer needs to be closed for deleted services to disappear.

6
votes

Have you considered using a different MSI authoring tool such as Windows Installer XML? The advantage is it doesn't hide Windows Installer's underlying ServiceInstall / ServiceControl panels saving you from the pain of reinventing the wheel with fragile out of process InstallUtil code.

1
votes

I just solved this problem myself, in Windows 7.

FWIW, turns out you can go to the "Services" tab, right-click on the offending service, choose "Go To Process", and kill as required.

0
votes

I had the same issue with my windows service on my deployment server.

Steps to solve problem:

  • Go to install/uninstall wizard in windows
  • Click on repair (which will fire custom action of setup)
  • After repair try to uninstall that windows service
  • it will uninstall perfectly

Hope this will work for you.