每次重启AutoCAD。DLL被重新编译
我使用NetLoad在AutoCAD中加载我的. dll。如果我尝试重建. dll,我必须先退出AutoCAD,然后重新启动它并再次使用NetLoad。有没有办法解决这个问题?有没有办法使用AutoCAD调试我的代码,而无需退出并重新启动它?**** Hidden Message ***** Visual Studios支持编辑并继续32位。
其他明智的否。
您可以尝试通过从不同名称的程序集重新加载来隐藏CommandMethod。 如果您要求加载,您可以避免netload过程
问题是您必须关闭并重新启动AutoCAD,当程序集加载到AutoCAD的运行副本中时,您无法卸载和/或重新编译它。 对于调试,您最好不要要求加载它。否则它会指向调试版本,并且永远不会加载发布版本。
可以在调试过程中启动AutoCAD,并且您可以使用脚本文件给出参数 /b。因此AutoCAD在启动后加载脚本文件。在该脚本文件中,您可以放置行NETLOAD和dll的文件名。
在这种情况下,您可以停止调试并重新开始,而无需一直键入NETLOAD命令。
如果他每次加载应用时都使用注册该应用的代码,他可以要求加载调试版本并切换到发布版本,他只需要对其进行一次网络加载,然后更新注册表以加载发布版本。这就是它在这里的工作原理,只是如果没有任何更改,我的注册码将避免重新注册程序集。
我在ADN examples中发现了一个自动注册应用程序的类,但我认为如果dll文件已经注册,它不会更新路径。就我个人而言,我使用这个类,但是如果是在调试模式下,就不要调用这个类,但是另一方面,如果它是网络加载的,最好改变路径。你的解决方案更好(但你知道)
另一方面,我对自动注册应用程序的想法略有改变,因为AutoCAD的新自动加载系统也一直更新注册表。当有人安装我的应用程序时,我现在注册dll。然后我运行的时候就不需要调用类了。
好吧,它肯定比基恩几年前制作的仿冒品(没有注册随后添加的命令)更好。
是的,自动加载机会在每次加载程序集时重新注册程序集,并且不必要地这样做。
有一种非常简单的方法来找出程序集是否已被以任何方式修改或更改,我的类将检查它是否具有,如果没有,则跳过毫无意义的重新注册。
Autodesk以这种方式做到这一点的事实并不能使它正确。想想看,他们讨论组最近的一些帖子似乎表明,还有其他问题似乎在产品发布中挥之不去,这闻起来非常糟糕。
我相信我的ExtensionApplicationInfo已经发布在这里。如果没有,有人喜欢它,我可以发布它。
我认为加载程序集的“最佳方式”应该取决于代码的性质...您不希望NETLOAD一个将
RibbonServices.RibbonPaletteSetCreated
事件挂钩的程序集以完全初始化,因为当您能够输入NETLOAD时,该事件已经来了又去。
我必须测试注册表加载器或自动加载器才能确定先加载哪个。
如果加载您的程序集不依赖于启动顺序,那么脚本(/b开关)或在您的...\调试\文件夹中删除Acad.lsp应该可以做到...鉴于FindFile()方法在SFSP之前继续错误地在工作文件夹中自动加载用户定义的文件。
页:
[1]
2