发布Assembly.LoadFrom文件句柄

时间:2010-07-19 13:02:05

标签: c# .net file

我正在尝试使用以下代码获取C#中的exe的汇编版本

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

它工作得很完美,但如果我在使用此函数后尝试删除exe,则会显示“Access Denied”,因为exe正被另一个进程使用!

是否有任何Dispose调用或某些东西会释放文件句柄或任何其他解决方案?

2 个答案:

答案 0 :(得分:3)

除卸载应用程序域之外,无法卸载程序集。见How to: Load and Unload Assemblies

  

无法卸载   个别装配无需卸货   所有应用程序域   包含它。使用卸载方法   AppDomain卸载应用程序   域。有关更多信息,请参阅   卸载应用程序域。

如果您只想获取文件版本,请尝试使用FileVersionInfo.GetVersionInfo

答案 1 :(得分:2)