明经CAD社区

 找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 77|回复: 0

[运行时] 【转载】AutoCAD.net二次开发netload不能卸载问题解决方法

[复制链接]
发表于 2021-4-6 20:12 | 显示全部楼层 |阅读模式
本帖最后由 qq1254582201 于 2021-4-6 20:17 编辑

AutoCAD.net二次开发netload不能卸载问题解决方法
  
AutoCAD.net二次开发netload不能卸载问题解决方法
使用C#.net或者VB.net对AutoCAD进行二次开发的同学们都知道,运行程序需要在AutoCAD里用netload命令加载编译好的dll文件。这时候如果程序不满意,需要修改之后再次生成,就会发现dll被AutoCAD占用,不可写。只能关闭AutoCAD才能让dll文件变成可写,才能再次生成。然后打开AutoCAD再次用netload加载dll。
每一个程序都是需要调试和修改很多次的,打开一次cad需要一定的时间,特别是版本较高,电脑又比较渣的时候。这让编程过程浪费了大量时间。所以每个AutoCAD.net编程者都试图要寻找在AutoCAD中卸载dll的方法。本人作为一个初学者也是如此。
昨天在明经通道论坛浏览,无意间发现有人在讨论这个问题。某位名叫“brbright”的网友回了这么一段话:
不过并没有说更具体的方法步骤。我决定用他的这两句代码试一下。
首先,我想到要运行这两句代码,我们还是需要一个类库dll在AutoCAD里运行的,所以说,思路就是把这个代码做成一个dll在cad中加载,然后再用这段代码中定义的命令加载我们真正要用的那个程序的dll。
好了,我们新建一个项目。
写入如下代码:
定义一个netloadx命令。
之后生成,在AutoCAD中用netload加载这个netload.dll,然后运行netloadx加载我的程序zhy.dll。
一切正常。
之后我修改我的zhy程序,然后生成程序。显示生成成功,说明zhy.dll未被占用:
到这里我很兴奋,看来马上要成功了。
在AutoCAD里再次使用netloadx加载zhy.dll。AutoCAD中显示如下的提示,加载未成功。
这是什么原因呢?
我把这段提示用翻译软件大概翻译了一下,又到百度上查了一下。大概的意思是版本问题。我想可能是我新生成的zhy.dll和原来的版本相同,AutoCAD认为已经加载了这个版本的程序集,就不能再加载同样的一个版本了。所以,我在visual studio里把程序的版本修改了一下:
这里原来是1.0.0.0,我修改成1.1.0.0,之后再次生成,生成成功。在AutoCAD里再次用netloadx加载zhy.dll。加载成功!
看起来确实是版本问题。
所以说每次生成之前,修改一下程序的版本就可以了。
不过这样似乎还是有点麻烦。所以我想到了放版本信息的那个文件。是否可以修改一下,能够自动改变版本。
这个文件在这里:
这个文件里写了版本信息:
注意上面的那段注释。我想假如用注释上说的:也可以使用……默认值,方法是……使用“*”,那么是不是AutoCAD就不会再注意版本问题了呢?试一下。
于是我使用注释里写的另一种版本写法把这段代码改成这样:
修改程序,再次生成,生成成功,在AutoCAD中用netloadx再次加载zhy.dll,加载成功!
再次修改程序,再次生成程序,再次用netloadx加载zhy.dll,加载成功!
我反复试了很多次,每一次都加载成功!完美!
好了,以上!
PS:感谢明经通道论坛!特别感谢明经通道论坛的这位“brbright”大神!
本文由【QQ307501169伤脑筋】编写,转载请注明出处!

原文链接:
QQ空间



您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号  
©2000-2020 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2021-4-16 18:10 , Processed in 0.465345 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表