卸载Assembly dll正由另一进程使用,因此该进程无法访问此文件

Assembly没有unload的方法,网上一说可以用other appdomain去load然后unload这个appdomain其实那个Assembly的文件还是锁定这不能修改删除。随决定不使用assembly直接load dll文件改有自己load出byte[]这下文件的控制权在自己手里就没人管的着我删不删文件了。
string assemblyPath2 = @"c:\targ.dll";
 FileStream stream = File.Open(assemblyPath2, FileMode.Open, FileAccess.Read);
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, (int)stream.Length);
stream.Close();
Assembly asm2 = AppDomain.CurrentDomain.Load(bytes);
Type[] types = asm2.GetTypes();
posted @ 2011-04-28 11:35  子萧  阅读(673)  评论(0)    收藏  举报