释放 Assembly.LoadFrom 文件句柄

MBZ*_*MBZ 5 .net c# file

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

Assembly asm = Assembly.LoadFrom(address);
return asm.GetName().Version;
Run Code Online (Sandbox Code Playgroud)

它工作正常,但是如果我在使用此功能后尝试删除该 exe,它会显示“拒绝访问”,因为该 exe 正在被另一个进程使用!

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

Qua*_*ter 5

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

如果不卸载包含该程序集的所有应用程序域,就无法卸载该程序集。使用 AppDomain 中的 Unload 方法卸载应用程序域。有关更多信息,请参阅卸载应用程序域。

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