我試圖獲得一個exe的程序集的版本在C#中使用下面的代碼發佈Assembly.LoadFrom文件處理
Assembly asm = Assembly.LoadFrom(address);
return asm.GetName().Version;
它的作品完美,但如果我嘗試刪除該exe文件後,我用這個功能,它說「訪問被拒絕」,因爲exe被另一個進程使用!
是否有任何Dispose調用或釋放文件句柄或任何其他解決方案?
我試圖獲得一個exe的程序集的版本在C#中使用下面的代碼發佈Assembly.LoadFrom文件處理
Assembly asm = Assembly.LoadFrom(address);
return asm.GetName().Version;
它的作品完美,但如果我嘗試刪除該exe文件後,我用這個功能,它說「訪問被拒絕」,因爲exe被另一個進程使用!
是否有任何Dispose調用或釋放文件句柄或任何其他解決方案?
沒有辦法卸載卸載比應用程序域之外的裝配。見How to: Load and Unload Assemblies:
沒有辦法卸載的 個別組件而不卸載 所有 包含它的應用領域。從 AppDomain使用Unload方法卸載應用程序 域。有關更多信息,請參閱 卸載應用程序域。
如果您只想獲取文件的版本,請嘗試使用FileVersionInfo.GetVersionInfo。
可能的重複[如何從主AppDomain卸載程序集](http://stackoverflow.com/questions/123391/how-to-unload-an-assembly-from-the-primary-appdomain) – nos 2010-07-19 13:13:16