assembly如何读取不是debug下的dll文件

ruoshuipian 2010-11-08 02:07:52
我要读取不存放在bin的debug下的dll,如何读取。

我已尝试用loadfrom、loadfile来读取动态加载的dll文件,假如我的debug下面有Test.dll文件的话,然后我调用其他文件夹比如F:\dll下面的这个Test.dll,使用路径F:\dll\Test.dll调用,在客户端能使用Activator.GetObject调用该dll里的类。但是我把debug下面的这个Test.dll删除掉,再assembly.Loadfrom(@“F:\dll\Test.dll”),提示:
未能加载文件或程序集“Test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。


...全文
210 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruoshuipian 2010-11-09
  • 打赏
  • 举报
回复
我上传的dll设想是放在dll文件夹下面的一个按时间版本创建的文件夹里面的,然后在windows service里每个dll文件都AppDomain一个程序域,在这个域里面动态,TcpChannel这个dll,在客户端调用它的接口,使用时,用Activator.GetObject生成代理,调用dll的方法。如果是全部dll都放到bin下的话,就有一个问题,同一个dll的不同版本会覆盖掉,而我要的是用新创建的文件夹来体现版本号,并根据xml里面保存的信息动态加载dll。
现在的问题是,假如我将dll放到我新创建的文件夹里面,windows service启动没问题,测试显示这个文件夹里的dll正被使用中,但是我在客户端已他的接口生成代理:object iTest = (ITest)(Activator.GetObject(typeof(ITest), "tcp://localhost:8887/Test"));调用方法提示找不到文件。
crackdung 2010-11-09
  • 打赏
  • 举报
回复
上传的dll就不能增加到GAC? 难道用一次就删除这个dll? 难道是c++的dll? 难道是com形式的dll?
ruoshuipian 2010-11-09
  • 打赏
  • 举报
回复
我需要的是加载与项目独立的dll,引用的话是不可能的,我要做到的是在web上上传dll,然后windows service能通过上传信息动态加载dll,如果引用的话,难道我每上传一个dll,项目又重新生成一次?
crackdung 2010-11-09
  • 打赏
  • 举报
回复
建议使用不同名字和使用强签名,并且将dll增加GAC,并且引用需要的dll,怎样使用都不会出错了。



my blog
http://ufo-crackerx.blog.163.com/
ruoshuipian 2010-11-09
  • 打赏
  • 举报
回复
怎么都没人回答啊,自己顶下。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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