1、关键的C#代码是以下四句: //调用Windows.Forms选择一个文件 OpenFileDialog fileDialog = new OpenFileDialog(); //选择的文件路径 string file_dir = fileDialog.FileName; //打开文件,将文件以二进制方式复制到内存,自动关闭文件 byte[] buffer = System.IO.File.ReadAllBytes(file_dir); //加载内存中的文件 Assembly assembly = Assembly.Load(buffer);整体代码简短,原理简单,并有大量注释,读者可以直接阅读下文了解。
2、using System;using System.Linq;using Autodesk.AutoCAD.EditorInput;usi荏鱿胫协ng Autodesk.AutoCAD.Runtime;using System.Windows.Forms;using System.Reflection;namespace myNetLoad{ public class MyClass { //本程序在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); } } }}
3、修改AssemblyInfo.cs中的版本信息。[assembly: AssemblyVersion("1.0.0.0")]只有不同版本的dll才能用Assembly.Load覆盖。