社区
C#
帖子详情
在C#如何动态卸载DLL文件。
JGH8041
2007-11-12 04:01:07
在C#如何动态卸载DLL文件。
在帮助文件没找到。
...全文
189
5
打赏
收藏
在C#如何动态卸载DLL文件。
在C#如何动态卸载DLL文件。 在帮助文件没找到。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dyh0
2007-11-14
打赏
举报
回复
http://blog.csdn.net/pansiom/archive/2006/01/01/568096.aspx
277894613
2007-11-13
打赏
举报
回复
@ 只能卸载AppDomain,不能卸载Assembly
MS是这样的
JGH8041
2007-11-13
打赏
举报
回复
就是不能完全卸载。还是会存在是吗?为什么?
liuliqin132
2007-11-12
打赏
举报
回复
欢迎大家加入群:10987609 讨论各项技术问题
vwxyzh
2007-11-12
打赏
举报
回复
只能卸载AppDomain,不能卸载Assembly
c#
动态
加载
卸载
DLL
的方法
c#
中通过反射可以方便的
动态
加载
dll
程序集,但是如果你需要对
dll
进行更新,却发现.net类库没有提供
卸载
dll
程序集的方法。在.net 中,加入了应用程序域的概念,应用程序域是可以
卸载
的。也就是说,如果需要对
动态
加载的
dll
程序集进行更新,可以通过以下方法解决: 新建一个应用程序域,在该应用程序域中
动态
加载
DLL
,然后可以
卸载
掉该应用程序域。该应用程序域被
卸载
的时候,相关资源也会被回收。 要想这样实现,就要让你程序的currentDomain和新建的newDomain之间进行通信,穿过应用程序域的边界。从网上找到了某大牛的解决方法,抄下来留给自己看吧: 代码如下:using Syst
利用反射,
动态
加载
DLL
,
卸载
DLL
反射的加载与
卸载
,适用于需要经常变换更新的地方。 代码里
文件
路径是编译的路径(需要替换为自己的存放路径),我是将
DLL
拷贝到EXE
文件
夹下测试的,在没有
卸载
完,拷贝覆盖不了,
卸载
后就可以覆盖了。
C#
文件
系统的操作
本课程将介绍如何在
C#
中执行读写
文件
操作,读写
文件
夹操作。
.NET
动态
加载
DLL
文件
目前对于 Assembly, CLR 没有提供
卸载
Assembly 的方法。而 Assembly 是 驻留在 Appdomain 中,Appdomain 是可以
动态
卸载
和创建的。
进程退出、
dll
卸载
、静态成员析构的Crash
进程退出时(调用了 return 0; 之后CRT析构了全局对象,然后调用ExitProcess)
dll
中的静态成员并未在ExitProcess之前析构,而是exe通知
dll
detach之后再析构的。ExitProcess的时候,系统会强制回收一些new出来的堆区空间,如果这之后
dll
中的静态变量还会 引用到这些空间,则会出现内存不可读的错误。
C#
110,502
社区成员
642,567
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章