2017-10-10 8 views
1

次のコードを使用してサービスをインストールしています。c#AssemblyInstaller service install 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); 

インストール後、サービスに含まれているdllファイルを削除しようとしたときに、アクセスが拒否されたためにインストールできません。アプリケーションを閉じると(サービスがまだインストールされている)問題は消えます。どのようにそれを解決するには?

答えて

0

インストーラにDispose()を呼び出してみたり、 "使用" でコードをラップ:

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

AssemblyInstallerからMSDN上:

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

+0

を両方とも動作しません。 – quarandoo

関連する問題