雪山飞狐_lzh 发表于 2015-4-23 16:12:33

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-13 16:45:22

本帖最后由 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

LL_Zz 发表于 2019-12-5 16:16:21

brbright 发表于 2016-9-10 15:38
有更简单的方法。
不要用NETLOAD,将dll复制到内存再加载,可以避免文件被占用。



我用这个方法,得改assembly文件里的程序版本,如果第二次编译版本没有增加,就覆盖不了以前加载在内存里的代码

changyiran 发表于 2015-4-23 16:16:37

牛人,仔细研究下

飞诗(fsxm) 发表于 2015-4-23 16:22:38

很好很强大!有空测试下!

sieben 发表于 2015-4-23 19:31:38

已下载,待学习,谢谢!

zzyong00 发表于 2015-4-23 20:41:46

先下了,有空研究一下

Real_King 发表于 2015-4-24 10:32:13

感谢技术革新!

叶曲冰寒 发表于 2015-4-24 14:39:19

这个分离的搞法很久以前就玩过了,感觉也麻烦!

雪山飞狐_lzh 发表于 2015-4-24 19:00:31

二次开发就是二奶。奈何

SWAYWOOD 发表于 2015-4-26 16:08:39

.net 32位下多数情况下可以边修改边调试啊?
我用的时候发现只要不改变全局的东西就可以调试,不知道大家是不是这样子的。

雪山飞狐_lzh 发表于 2015-4-26 22:12:43

上面算是个补充方案 edit and countion 也有经常无能为力的时候
页: [1] 2 3 4
查看完整版本: NetLoadX源码发布,NetApi调试再不是问题