2017-10-10 20 views
1

J'installe un service en utilisant le code suivant.C# AssemblyInstaller service install bloque l'accès au fichier dll

string[] commandLineOptions = new string[0]; 
System.Configuration.Install.AssemblyInstaller installer = new System.Configuration.Install.AssemblyInstaller(path, commandLineOptions); 
installer.UseNewContext = true; 
installer.Install(null); 
installer.Commit(null); 

L'installation se comporte bien, mais après l'installation, tout en essayant de supprimer le fichier dll inclus avec le service, il est impossible de le faire en raison de refuser l'accès. Le problème disparaît après la fermeture de l'application (le service est toujours installé). Comment le résoudre?

Répondre

0

Essayez d'appeler Dispose() sur l'installateur ou enveloppez code avec "l'aide":

using (var installer = new AssemblyInstaller(path, commandLineOptions)) 
{ 
    installer.UseNewContext = true; 
    installer.Install(null); 
    installer.Commit(null);  
} 

De AssemblyInstaller sur MSDN:

Dispose() Releases all resources used by the Component.(Inherited from Component.)

+0

à la fois ne fonctionne pas – quarandoo