CAD二次开发(.NET)之重复加载DLL

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:00   2157   0

刚上手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

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP