Assembly.LoadFrom()出错

68年的Domi 2011-07-01 05:26:46
public Assembly LoadAssembly(string assemblyName) 
{
m_assembly = Assembly.LoadFrom(assemblyName);
return m_assembly;
}

如果我把MyAssembly程序集同时放在bin目录和D盘根目录,这里的assemblyName写"D://MyAssembly.dll"就可以成功加载,但是我一旦删掉bin目录下的MyAssembly程序集删掉就加载不成功,错误消息:
Could not load file or assembly 'MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
这是怎么回事啊?我这里明明就在加载D盘的程序集,为什么没需要在bin目录下存在呢?
...全文
169 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
68年的Domi 2011-07-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wxr0323 的回复:]
引用 6 楼 znfsky 的回复:

不好意思,这个地方我有点错,其实问题应该是出在这个方法的调用方。
我首先新建一个AppDomain,然后在这个新AppDomain里执行该方法,将其Load结果返回给主AppDomain,我想可能是在这种传递中出了问题。
[/Quote]
自己来回答自己的问题,呵呵。
我在主AppDomain中新建一个副AppDomain,其实在副AppDomain里调用Assembly.LoadFrom("D://MyAssembly.dll")是完全可以的,但是我把这个load出来的程序集传回给主AppDomain时就会出问题。因为跨AppDomain传递程序集都会导致目标Appdomain(即主Appdomain)重新载入程序集,并非像真的方法调用那样传递实例。主Appdomain并不知道程序集的绝对路径,只知道它叫MyAssembly.dll,在GAC、根目录、程序目录三个地方都没有找到,就抛出错误。
68年的Domi 2011-07-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 isjoe 的回复:]
Assembly.LoadFrom(assemblyName);
是可以写绝对路径的

你试试Loadfile()
[/Quote]
这个应该说没有多大关系吧。
我猜是不是我的 PublicKeyToken=null的原因?
子夜__ 2011-07-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 znfsky 的回复:]

不好意思,这个地方我有点错,其实问题应该是出在这个方法的调用方。
我首先新建一个AppDomain,然后在这个新AppDomain里执行该方法,将其Load结果返回给主AppDomain,我想可能是在这种传递中出了问题。
[/Quote]
68年的Domi 2011-07-02
  • 打赏
  • 举报
回复
不好意思,这个地方我有点错,其实问题应该是出在这个方法的调用方。
我首先新建一个AppDomain,然后在这个新AppDomain里执行该方法,将其Load结果返回给主AppDomain,我想可能是在这种传递中出了问题。
isjoe 2011-07-01
  • 打赏
  • 举报
回复
Assembly.LoadFrom(assemblyName);
是可以写绝对路径的

你试试Loadfile()
anbam 2011-07-01
  • 打赏
  • 举报
回复
msdn 比较清楚
xuexiaodong2009 2011-07-01
  • 打赏
  • 举报
回复
Assembly.LoadFrom(assemblyName);
可以查查官方文档怎么设置路径,assemblyName不包含路径的
xuexiaodong2009 2011-07-01
  • 打赏
  • 举报
回复
assemblyName写"D://MyAssembly.dll"
不包含路径的,默认回到几个系统目录,exe所在目录找的

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧