首页 新闻 会员 周边

关于程序集反射的问题

0
悬赏园豆:20 [已关闭问题]

假如我在D:/BinTemp/目录下放置了一个test.dll

而网站http://localhost(主目录不在D:/BinTemp下)中,通过Assembly.loadFile(@"D:/BinTemp/test.dll")来调用这个DLL,

但是在调用完成后,到D:/BinTemp/下却不能删除该DLL了,只能回收应用程序池后才能删除。
这个问题该怎么解决呢?请教各位达人们

 

mcjeremy的主页 mcjeremy | 初学一级 | 园豆:6
提问于:2008-12-01 15:34
< >
分享
其他回答(2)
0

把DLL放到自己网站的BIN下面.

你说的意思是只要删除那个程序就行吗?用强行删除工具把它给DEL了.

Astar | 园豆:40805 (高人七级) | 2008-12-01 15:41
0

有两个办法。

1. 使用下面的代码:

     Assembly.Load(File.ReadAllBytes(filePath));

     就是把整个文件读出来,成一个byte[],然后加载这个byte[]。之后关闭文件。

     缺点是这个dll所用到的其它的dll不会被自动加载。

2. 使用独立的AppDomain加载这个DLL,执行完函数调用之后,关闭这个AppDomain。代码比较多。可以在MSDN上找到例子。http://msdn.microsoft.com/en-us/library/system.appdomain.aspx

南柯之石 | 园豆:315 (菜鸟二级) | 2008-12-01 23:01
0

用独立的 AppDomain 加载动态库,不用时卸载 AppDomain,这样就可以删除了。

http://www.cnblogs.com/eaglet/archive/2008/10/17/1313384.html

eaglet | 园豆:17139 (专家六级) | 2008-12-02 06:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册