刚上手CAD二次开发,每次更新代码后都要重启CAD相当心烦,多方请教后终于拿出一个可以每次更改代码不用重启CAD的方法了。我建议新建一个类库项目专门放置Netload的方法
using System;
using System.Linq;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using System.Windows.Forms;
using System.Reflection;
namespace netload
{
public class class1
{
//本程序在AutoCAD的快捷命令是"NL"
[CommandMethod("NL")]
public void myLoad()
{
//AutoCAD命令栏
Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
//调用Windows.Forms选择一个文件
OpenFileDialog fileDialog = new OpenFileDialog();
//判断确认按钮
if (fileDialog.ShowDialog() == DialogResult.OK)
{
//选择的文件路径
string file_dir = fileDialog.FileName;
//在AutoCAD命令栏输出选择的文件路径
ed.WriteMessage("文件路径:" + file_dir);
//打开文件,将文件以二进制方式复制到内存,自动关闭文件
byte[] buffer = System.IO.File.ReadAllBytes(file_dir);
//加载内存中的文件
Assembly assembly = Assembly.Load(buffer);
}
}
}
}
然后再建立一个自己的项目,这是你实实在在的项目,尤其注意的是要改一个地方
改成这样会报错,继续改项目文件中中的csproj,用记事本打开。
<Deterministic>false</Deterministic> 原来的true改成false。
然后在CAD中先netload加载第一个专门用于加载其他项目的dll
加载后输入我设定"NL"用于加载其他项目
然后每次改完代码,重新NL加载新生成的dll即可,不需重启CAD |