AutoCAD .Net开发常见问题汇总
1.显示无法加载程序集
因为我的环境是VS2010,.Net版本是4.0,而AutoCAD 2008的版本是2.0,因此会出现不兼容的问题,可以通过设置.NET Framework版本的方法来解决这个问题,在“目标框架”下拉框中选择.NET Framework3.5
2.提示输入的命令为未知命令
出现这种问题是与添加的两个程序集acdbmgd.dll和acdmgd.dll有关。请首先关闭CAD回到Visual Studio开发环境,然后在解决方案管理器中依次单击acdbmgd.dll和acdmgd.dll引用,查看他们“复制本地”属性,你会发现属性值为True,意思是当程序编译的时候这2个程序集会复制输出到文件夹里。我们只需要把这2个属性设置为False,就可以让程序正常运行了。
3.使用Visual Studio对代码进行调试
a.将acdbmgd.dll和acdmgd.dll这2个引用的“复制本地”属性设置为False
b.设置程序的调试环境
4.如何使用向导完成AutoCAD .NET开发需要进行的准备工作
https://www.cnblogs.com/ParanoiaApe/p/10544636.html
5.VS2010开发AutoCAD 2012 .net应用程序调试时断点不起作用
VS2010+ AutoCAD 2012开发调试过程中,发现普通的Class里面的断点是可以跟踪到的,可能是创建自定义的Form做界面是,Form1.cs中的代码断点却不管用。原因在于AutoCAD的纤程(Fiber)。是的,是纤程(Fiber)而不是线程(Thread)。VS2010的调试器和AutoCAD的纤程一起工作时会有问题。解决的办法就是关闭AutoCAD纤程。通过系统环境变量FIBERWORLD来查看当前纤程是否打开,如果是1,则可以通过把系统环境变量NEXTFIBERWORLD设为0。
Autodesk.AutoCAD.ApplicationServices.Application.SetSystemVariable("NEXTFIBERWORLD", 0);
如果你是在使用VS2010 基于AutoCAD 2011 及其垂直产品,可以参考http://www.cnblogs.com/junqilian/archive/2010/04/29/1724403.html
注意,当修改NEXTFIBERWORLD为0后如果出现CAD软件里所有的工具点击失效而只能输入命令行使用时再将NEXTFIBERWORLD改为1即可解决该问题,即NEXTFIBERWORLD只在开发调试过程中作更改,开发完后再将其原值改回。
6.CAD开发遇到eLockViolation错误的解决办法:
对CAD数据库进行写操作时,要把当前文档锁住,即添加如下两句代码:

DocumentLock docLock = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.LockDocument(); //执行代码 .... .... .... docLock.Dispose();
7.无法加载程序集。错误详细信息: Autodesk.AutoCAD.Runtime.Exception: eDuplicateKey
命令 重复了, 要把命令单独放在一个文件里,并且不能有重复的