我正在尝试使用以下代码获取C#中的exe的汇编版本
Assembly asm = Assembly.LoadFrom(address);
return asm.GetName().Version;
它工作得很完美,但如果我在使用此函数后尝试删除exe,则会显示“Access Denied”,因为exe正被另一个进程使用!
是否有任何Dispose调用或某些东西会释放文件句柄或任何其他解决方案?
答案 0 :(得分:3)
除卸载应用程序域之外,无法卸载程序集。见How to: Load and Unload Assemblies:
无法卸载 个别装配无需卸货 所有应用程序域 包含它。使用卸载方法 AppDomain卸载应用程序 域。有关更多信息,请参阅 卸载应用程序域。
如果您只想获取文件版本,请尝试使用FileVersionInfo.GetVersionInfo。
答案 1 :(得分:2)