zhengjian211 发表于 2009-10-21 14:45:00

[求助]如何卸载net程序,实现netload/netunload

<p>看到那一段英文了 似乎是要改edit and continue </p><p>但还是看不明白 </p><p>谁成功实现netload/netunload过 能说一下吗?</p>

hector 发表于 2018-5-4 22:27:48

怎么没加上附件呢?

diditoy 发表于 2018-5-31 14:49:17

hector 发表于 2018-5-4 22:25
感谢“brbright”大神,我把它做成了dll方便大家使用(使用的是sharpdevelop4.4+cad2007)。[/ ...

再次加载时没法覆盖程序集,抛出命令重复的异常,老铁知道为什么不?版本号已经修改了。。Cannot load assembly. Error details: Autodesk.AutoCAD.Runtime.Exception: eDuplicateKey
at Autodesk.AutoCAD.Runtime.Interop.Check(Int32 returnValue)
   at Autodesk.AutoCAD.Runtime.CommandClass.AddCommand(ICommandLineCallable ca, MethodInfo mi)
   at Autodesk.AutoCAD.ApplicationServices.AutoCADApplicationHolder.Initialize(Assembly assembly)
   at Autodesk.AutoCAD.ApplicationServices.ExtensionLoader.ProcessAssembly(Assembly assembly)

diditoy 发表于 2018-5-31 09:24:37

找到问题了,我是用cad开发向导建的项目,把项目里的这一段初始代码

      public void MyCommand() // This method can have any name
      {
            // Put your command code here
      }
删掉,就可以正常加载了。。不晓得为什么。。

雪山飞狐_lzh 发表于 2009-10-21 15:09:00

<p>edit and continue 是调试时用的</p><p>没有netunload,或者说.Net程序无法<strong>卸载</strong></p>

zhengjian211 发表于 2009-10-21 15:18:00

<p>谢谢版大</p><p>只能重开cad了?。 </p>

flyhorse 发表于 2014-5-8 15:06:21

我也试了好多次,没用。

SWAYWOOD 发表于 2014-5-9 08:15:44

买新机器吧,我就是这么做的,开CAD6秒。

cdinten 发表于 2014-5-9 18:37:18

你可以了解一下AppDomain,.NET程序不能像C++写就的dll(arx就是其中的一种)那样卸载。我感觉托管程序的加载、卸载相对于传统本地dll应该要容易一些,不知道微软当初设计的时候是出于什么考虑,不提供这种实现功能,现在导致每次重新编译之后就得重新启动CAD再加载一次,严重影响了效率

brbright 发表于 2016-9-10 15:35:49

不要用NETLOAD,将dll复制到内存再加载,可以避免文件被占用。

//打开文件,将文件以二进制方式复制到内存,自动关闭文件
byte[] buffer = System.IO.File.ReadAllBytes(file_dir);
//加载内存中的文件
Assembly assembly = Assembly.Load(buffer);

zhy307501169 发表于 2016-10-12 22:43:09

brbright 发表于 2016-9-10 15:35
不要用NETLOAD,将dll复制到内存再加载,可以避免文件被占用。

//打开文件,将文件以二进制方式复制到内 ...

大神你真是太牛了,终于解决这个问题了!赞!

魔子幻灭 发表于 2016-10-15 23:38:29

也么解决的?能讲讲嘛!

zhy307501169 发表于 2016-10-20 19:34:16

请看我qq空间文章,qq307501169.完整设置教程。
页: [1] 2 3
查看完整版本: [求助]如何卸载net程序,实现netload/netunload