NetLoadX源码发布,NetApi调试再不是问题
本帖最后由 雪山飞狐_lzh 于 2015-4-23 22:36 编辑首先感谢efan,代码的第一版是他的 O(∩_∩)O~
.NetApi的调试一直都有问题,每次调试都必须启动AutoCad
原因就在于,Net的加载机制是直接加入当前应用域,造成dll无法卸载
在Kean的帖子里提到了实现一个自己的mynetload,在另一个应用程序域里加载,这样就可以实现卸载
下面的源码是基于这个原理在efan的第一版基础上修改的
使用方法:
1、NetLoadX生成到测试dll的输出目录
2、RemoteManager生成到AutoCad的安装目录
3、加载NetLoadX.dll运行netloadx命令即可,如果要开Cad即用,最好做成注册版本
4、打开你的测试项目,设置调试方式为启动外部程序,选择acad.exe文件
5、启动测试项目
6、如果要修改源码,不要停止调试,而是在VS的调试菜单选择“全部分离”
7、修改完毕生成dll,再选择调试菜单的“附加到进程”
这样调试时就重复6---7即可,AutoCad就一直开着
本帖最后由 david96007 于 2023-12-14 07:35 编辑
ZKSJLL 发表于 2021-4-6 13:06
试验了一下,可以编译,但出现无法加载程序集。错误详细信息: Autodesk.AutoCAD.Runtime.Exception: eDupli ...
2023年12月13日16:44:26
我使用的autocad版本是2018
我遇到问题是一样的,
报错:Autodesk.AutoCAD.Runtime.Exception: eDuplicateKey brbright 发表于 2016-9-10 15:38
有更简单的方法。
不要用NETLOAD,将dll复制到内存再加载,可以避免文件被占用。
我用这个方法,得改assembly文件里的程序版本,如果第二次编译版本没有增加,就覆盖不了以前加载在内存里的代码 牛人,仔细研究下 很好很强大!有空测试下! 已下载,待学习,谢谢! 先下了,有空研究一下 感谢技术革新! 这个分离的搞法很久以前就玩过了,感觉也麻烦! 二次开发就是二奶。奈何 .net 32位下多数情况下可以边修改边调试啊?
我用的时候发现只要不改变全局的东西就可以调试,不知道大家是不是这样子的。 上面算是个补充方案 edit and countion 也有经常无能为力的时候