如何在不知道版本的情况下加载程序集

本文关键字:情况下 加载 程序集 版本 不知道 | 更新日期: 2023-09-27 18:22:09

我想从GAC加载一个程序集,但我不知道它的版本。我确实知道AssemblyNamePublicKeyToken

string dllname="gacname"; //Name os assembly  
AssemblyName name = new AssemblyName(string.Format("{0}, PublicKeyToken=dd3cb1c9aae9ec97" ,dllname));
var x = Assembly.Load(name);

此代码引发一个异常:

无法加载文件或程序集。。。

dllname是正确的,因为当我在AssemblyName中指定版本时,它可以正常工作。

在不知道版本的情况下可以这样做吗?

如何在不知道版本的情况下加载程序集

您尝试过查看GAC的内容吗?您可以通过启动以下命令来完成此操作:

gacutil -l

这将告诉您程序集的版本。

请阅读MSDN文档中的"如何:查看全局程序集缓存的内容"

尽管它已被弃用,但您尝试过Assembly.LoadWithPartialName(dllname);吗?