0
我有以下安裝WINSERVICE(簡化)代碼:ManagedInstallerClass.InstallHelper被鎖定WINSERVICE exe文件
public static bool InstallService(string fullFileName)
{
try
{
ManagedInstallerClass.InstallHelper(new[] { fullFileName });
return true;
}
catch (Exception ex)
{
return false;
}
}
我注意到,在我的安裝嚮導調用它時,一個WINSERVICE的EXE文件被鎖定,直到整個安裝嚮導沒有完成。有沒有辦法如何避免這種鎖?如何在InstallService完成後「釋放資源」?我發現類似問題here。 GC.Collect()沒有幫助我。
我試圖在單獨的線程中調用方法,但沒有成功。
這很正常,使用Assembly.LoadFrom()加載的程序集保持加載狀態,並保持文件鎖定狀態,直到AppDomain被卸載。你必須在新的AppDomain中運行這個代碼並自己卸載它以避免這種情況。 –