C#:如何从 GAC 加载程序集?
我在 GAC 中有“mycomp.myassemble.dll”,但 Load 和 LoadFrom 抛出文件未找到异常,并且 LoadWithPartialName 返回 null。我正在执行以下操作:
AssemblyName name = new AssemblyName();
name.Name = "mycomp.myassembly.dll";
Assembly assembly = Assembly.Load(name);
mycomp.my assembly.dll 文件因 FileNotFound 而失败,并
Assembly assembly = Assembly.Load("mycomp.myassembly.dll");
因完全相同的消息而失败。
我仔细检查了程序集是否在 GAC 中(甚至再次执行了 gacutil /if),并且它在所有其他情况下都有效,我只是无法自己加载它。
我在这里做错了什么? 我错过了什么吗?
I have "mycomp.myassembly.dll" in GAC but Load and LoadFrom throws file not found exception and LoadWithPartialName returns null. I'm doing the following:
AssemblyName name = new AssemblyName();
name.Name = "mycomp.myassembly.dll";
Assembly assembly = Assembly.Load(name);
fails with FileNotFound for mycomp.myassembly.dll file, and
Assembly assembly = Assembly.Load("mycomp.myassembly.dll");
fails with exactly the same message.
I double checked that assembly is in GAC (and even did gacutil /if for it again) and it does work in all other cases, I just unable to load it myself.
What am I doing wrong here?
Do I miss something?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您是否尝试过使用完全限定的程序集名称? (例如
“ycomp.myassemble.dll,Version=1.0.2004.0,Culture=neutral,PublicKeyToken=8744b20f8da049e3”
)Have you tried using the fully qualified assembly name? (e.g.
"ycomp.myassembly.dll, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3"
)尝试简单地使用全名加载
我通常可以在没有版本的情况下加载、文化和公钥。
try simply loading with the full name
I can usually load without the version, culture and public key.