AutoCAD卸载c#.NET模块(NETUNLOAD功能的实现)

 时间:2024-10-01 19:26:53

了解过AutoCADC#.NET编程的朋友可能会有这样的烦恼:由于.NET程碌食撞搁序模块只能在AutoCAD结束时才能被卸载,重新编轿杷傥桓译.NET程序必须先关闭AutoCAD。因为AutoCAD的启动实在太慢,频繁调试和编译.NET程序会浪费大量的时间在开关AutoCAD的过程中,实在让人厌烦。其实,我们可以采取替代方案。简单的说,直接用System.IO.File.ReadAllBytes将.NET程序类库dll读取到内存,然后用Assembly.Load加载内存中的dll就可以了。因为System.IO.File.ReadAllBytes读取完dll文件后,会自动关闭,不会占用dll文件,可以重新编译.NET程序。这样,我们就实现了在不关闭AutoCAD的前提下,通过迂回的方式实现了AutoCAD卸载.NET程序的功能。

工具/原料

AutoCAD

VisualStudio系列或SharpDevelop

方法/步骤

1、关键的C#代码是以下四句: //调用Windows.Forms选择一个文件 OpenFileDialogfileDialog=newOpenFileDialog(); //选择的文件路径 stringfile_dir=fileDialog.FileName; //打开文件,将文件以二进制方式复制到内存,自动关闭文件 byte[]buffer=System.IO.File.ReadAllBytes(file_dir); //加载内存中的文件 Assemblyassembly=Assembly.Load(buffer);整体代码简短,原理简单,并有大量注释,读者可以直接阅读下文了解。

2、usingSystem;usingSys隋茚粟胫tem.Linq;usingAutodesk.AutoCAD.EditorInput;usi荏鱿胫协ngAutodesk.AutoCAD.Runtime;usingSystem.Windows.Forms;usingSystem.Reflection;namespacemyNetLoad{publicclassMyClass{//本程序在AutoCAD的快捷命令是"NL"[CommandMethod("NL")]publicvoidmyLoad(){//AutoCAD命令栏Editored=Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;//调用Windows.Forms选择一个文件OpenFileDialogfileDialog=newOpenFileDialog();//判断确认按钮if(fileDialog.ShowDialog()==DialogResult.OK){//选择的文件路径stringfile_dir=fileDialog.FileName;//在AutoCAD命令栏输出选择的文件路径ed.WriteMessage("文件路径:"+file_dir);//打开文件,将文件以二进制方式复制到内存,自动关闭文件byte[]buffer=System.IO.File.ReadAllBytes(file_dir);//加载内存中的文件Assemblyassembly=Assembly.Load(buffer);}}}}

3、修改AssemblyInfo.cs中的版本信息。[assembly:AssemblyVersion("1.0.0.0")]只有不同版本的dll才能用Assembly.Load覆盖。

win7系统怎么检测显示外观? 如何快捷安装PS5教程 群晖如何配置回收站自动清理 win10更新后蓝屏怎么解决 Windows Server 2012 R2启用文件和打印机共享
热门搜索
传国玉玺图片 顺治通宝图片及价格 卡通机器人图片 纹眼线图片 儿童画蛋糕图片