2010-07-19 67 views
4

我試圖獲得一個exe的程序集的版本在C#中使用下面的代碼發佈Assembly.LoadFrom文件處理

Assembly asm = Assembly.LoadFrom(address); 
return asm.GetName().Version; 

它的作品完美,但如果我嘗試刪除該exe文件後,我用這個功能,它說「訪問被拒絕」,因爲exe被另一個進程使用!

是否有任何Dispose調用或釋放文件句柄或任何其他解決方案?

+0

可能的重複[如何從主AppDomain卸載程序集](http://stackoverflow.com/questions/123391/how-to-unload-an-assembly-from-the-primary-appdomain) – nos 2010-07-19 13:13:16

回答

3

沒有辦法卸載卸載比應用程序域之外的裝配。見How to: Load and Unload Assemblies

沒有辦法卸載的 個別組件而不卸載 所有 包含它的應用領域。從 AppDomain使用Unload方法卸載應用程序 域。有關更多信息,請參閱 卸載應用程序域。

如果您只想獲取文件的版本,請嘗試使用FileVersionInfo.GetVersionInfo