释放 Assembly.LoadFrom 文件句柄

6
我正在尝试使用以下代码在C#中获取exe的程序集版本。
Assembly asm = Assembly.LoadFrom(address);
return asm.GetName().Version;

这个函数运行得很完美,但是如果我在使用完这个函数后尝试删除exe文件,它会显示“访问被拒绝”,因为该exe文件正在被另一个进程使用!

是否有任何Dispose调用或其他释放文件句柄的解决方案?


可能是重复的问题:如何从主应用程序域中卸载程序集 - nos
2个回答

5

除了卸载应用程序域,没有其他方法可以卸载程序集。请参见如何:加载和卸载程序集

如果要卸载包含程序集的所有应用程序域,则无法单独卸载程序集。请使用AppDomain中的Unload方法来卸载应用程序域。有关详细信息,请参见卸载应用程序域。

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


2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接