2010-09-15 26 views
4

je le désinstalle un service comme celui-ci:Impossible de supprimer un fichier exécutable de service après l'avoir désinstallé

using (AssemblyInstaller installer = new AssemblyInstaller(serviceFileName, new String[] { })) 
{ 
    installer.UseNewContext = true; 
    installer.Uninstall(null); 
} 

qui fonctionne très bien, mais j'essayer de faire un Directory.Delete, et il jette une exception disant l'accès à l'exécutable du service a été refusé. Pourtant, immédiatement après, je peux supprimer le fichier manuellement dans Windows Explorer.

Mon application est exécutée par un programme d'installation qui demande un accès admin, donc je suppose qu'il a des droits sur le fichier. En fait, il supprime tous les autres fichiers dans ce répertoire, il ne peut tout simplement pas obtenir celui-là. J'ai également vérifié et le fichier n'est pas en lecture seule.

Des idées pour lesquelles je ne peux pas supprimer ce fichier?

Répondre

3

Il s'avère qu'il existe un handle pour ce fichier qui reste ouvert. La solution consistait à créer un nouveau AppDomain, à exécuter le programme d'installation et à le fermer avant d'essayer la suppression: