C# 开发CAD注意事项(一)

小白开发CAD

开始学习CAD开发了,小白学习中难免遇到很多问题,随手记录一下。

1.eLockViolation错误

开发CAD右键菜单运行时,报eLockViolation错误
在这里插入图片描述
需要修改非模态窗口文档内容或者数据库,以写入方式打开,需要先进行文档的锁定,但是我在使用时,在using之后加了个分号,所以后面花括号的文档没有锁定,文档锁定被using释放掉了。

using (DocumentLock docLock = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.LockDocument())
{
	//干活
}

若只读取文档的数据,不需要锁定文档。

2.查看CAD支持的.NET的版本

在CAD安装目录下,找到”acad.exe.config”文件,查看Version的版本即可。
在这里插入图片描述

3.连接Access数据库字符串

在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错:
在这里插入图片描述
连接字符串的问题。采用Microsoft.Jet.OleDb.4.0,可以读取excel2007以前的版本,在客户机上不需要部署office,采用Microsoft.Ace.OleDb.12.0的时候,需要安装引擎。
Microsoft.ACE.OLEDB连接字符串参考地址:
https://www.connectionstrings.com/ace-oledb-12-0/

//access低版本用:
conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + mdbpath + ";User Id=;Password=;";
//高版本用:
conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+ mdbpath + ";User Id=;Password=;";

设置好链接字符串之后,Access需要安装数据库引擎,Microsoft Access Database Engine 2016 Redistributable,下载地址为:
https://www.microsoft.com/en-us/download/details.aspx?id=54920

4. C# cad 未能完成程序集的安装

解决办法

  1. 平台版本与启动的CAD版本不一致,右击项目->点击属性,查看调试选项中平台版本与启动的CAD程序平台是否相同。
    在这里插入图片描述
  2. 查看解决方案的属性里中,配置属性里面对应项目的配置与平台是否与生成的配置和平台相对应。
    在这里插入图片描述
    都一致之后,就可以启动CAD,输入“netload”调用dll类库。

5.将低版本C# CAD程序改成高版本CAD程序和高版本.Net框架

  1. 首先对每一个项目属性里面的目标框架改成与高版本CAD匹配的.NET版本
    在这里插入图片描述
  2. 然后选择生成里面,将配置和目标平台都调整一下,如调到x64位版本;
    在这里插入图片描述
  3. 在主启动项目里面,右击属性,选择调试对话框,将启动外部程序调整为CAD启动目录,将工作目录调整为CAD目录下的UserDataCache隐藏文件夹。
    在这里插入图片描述
  4. CAD版本提高,意味着每一个项目里面引用的CAD dll动态库也要变化
    在这里插入图片描述
  5. 然后凡是引用AutoCADAXDBLib文件的,在添加引用里面,COM选项夹选择AutoCAD 2013 Type Library,选择chs结尾的中文库即可,然后再选择选择AutoCAD/ObjectDBX Common 19.0 Tyep Library,同样,选择chs中文库即可。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  6. 最后再库文件中引用
Using AutoCAD;
  1. 调试过程中有一些互操作类型错误的引用,需要将其属性中的“嵌入互操作类型”值改为“False”即可。
    在这里插入图片描述
  2. 还有一些引用,引用的第三方库,比如“System.Data.SQLite”“NetTopologySuite”等,需要重新下载高版本的dll动态库,重新引用一下即可。
  3. 引用中,直接引用的DAO的,需要改成Microsoft.Office.Interop.Access.Dao

在这里插入图片描述
并在文件中引用

using DAO=Microsoft.Office.Interop.Access.Dao;
  1. 最后,有些类库只有32位,如ArcGIS,这类项目需要删除。
  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值