目录
一、尝试用vs2013连接autocad2019
1、运行时候出现了错误
2、如何查询.netframework版本
二、vs2013更新到vs2019
1、完全干净的卸载vs2013
2、安装vs2019
3、运行代码出现的问题
4、解决方法
我是想用Qt连接CAD的,而且主要应用2D部分,之前找的Free CAD挺好的,只是它主要是发展3D部分,综合来看还是得用autocad,最开始我电脑里只有vs2013,因为之前出现过卸载不干净然后重做系统的大坑情况,所以一直不想动他,然后我第一次尝试用vs2013连接autocad2019。
一、尝试用vs2013连接autocad2019
按照网上的教程:基于C#(Visual Studio 2013)的AutoCAD2016二次开发(一)编程环境的搭建
(1)在vs2013中新建一个Visual C#类库;
(2)在解决方案资源管理器-引用右键-添加引用-选择CAD2019里的acmgd.dll、acdbmgd.dll、accoremgd.dll
(3)输入代码:代码参考了这个博客C# CAD 二次开发(二) -集成开发环境VS2012+CAD2016,我目前对C#一点都不懂哈哈,所以大致的将这位博主的代码搬了过来
//********************
//----------------
// visula studio 2013
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//********************
//----------------
// acdbmgd.dll
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.LayerManager;
using Autodesk.AutoCAD.GraphicsInterface;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Colors;
//********************
//----------------
// acmgd.dll
using Autodesk.AutoCAD.Windows.ToolPalette;
using Autodesk.AutoCAD.Windows;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.ApplicationServices;
namespace ClassLibrary1
{
public class Class1
{
[CommandMethod("hello")]
public static void hello()
{
Editor e = Application.DocumentManager.MdiActiveDocument.Editor;
e.WriteMessage("Helloworld");
}
}
}
1、运行时候出现了错误
warning MSB3274: 未能解析主引用“acdbmgd”,因为它是针对“.NETFramework,Version=v4.7”框架生成的。该框架版本高于当前目标框架“.NETFramework,Version=v4.5”。
warning MSB3275: 未能解析主引用“accoremgd”,因为它对程序集“Acdbmgd, Version=23.0.0.0, Culture=neutral, PublicKeyToken=null”具有间接依赖关系,而该程序集是针对“.NETFramework,Version=v4.7”框架生成的。该框架版本高于当前目标框架“.NETFramework,Version=v4.5”。
类似于这样的错误我也查询的解决方法,大致的意思可能是我的vs2013内的netframwork版本太低需要更新到4.7,具体解决办法后面会介绍。我还查询了如何查询.netframework版本的方法:
2、如何查询.netframework版本
C:WindowsMicrosoft.NETFramework,根据这个路径可以查看版本。我以为要自己手动更新版本,后来查询到了vs各版本和.netframework版本是对应的,具体在网上就可以查到,当时我查的时候vs2013对应的.netframework版本就是4.5,是从vs2017开始对应的才是4.7,于是我选择了将vs2013更新到vs2019。
二、vs2013更新到vs2019
首先要卸载vs2013,再安装vs2019
1、完全干净的卸载vs2013
亲测有效,找到安装镜像内的vs_ultimate.exe路径,像我这样的在命令符窗口输入:
//输入命令符窗口内 C:WINDOWSsystem32>h: H:>cd "vs2013光盘vs install" H:vs2013光盘vs install>vs_ultimate.exe /uninstall /force
我的确是安装完嫌他占地方大就给删了哈哈哈,好在我U盘里还有,我愣是给挪回电脑里的,就是等待的时间很长。如果镜像文件删了没有备份,可以试试用专用软件卸载,在网上查查,总之一定要卸载干净!
2、安装vs2019
下载官方地址:Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器
界面上只有2022版的,需要自己找:
在下载模块往下翻会有一个 较早的下载项
跟着登录微软账号就能下载了,具体安装步骤就不演示了,昨晚十二点多开始下载安装的,等到后面直接睡着了,反正早上醒来是安装好了。
然后我用vs2019打开了之前的项目,还是那些代码,
3、运行代码出现的问题
(1)warning MSB3275: 未能解析主引用“acmgd”,因为它对程序集“AcCui, Version=23.0.0.0, Culture=neutral, PublicKeyToken=null”具有间接依赖关系,而该程序集是针对“.NETFramework,Version=v4.7”框架生成的。该框架版本高于当前目标框架“.NETFramework,Version=v4.5”。
(2)error CS0246: 未能找到类型或命名空间名“Autodesk”(是否缺少 using 指令或程序集引用?)
(3)error CS0246: 未能找到类型或命名空间名“CommandMethod”(是否缺少 using 指令或程序集引用?)
(4)warning MSB3270: 所生成项目的处理器架构“MSIL”与引用“accoremgd”的处理器架构“AMD64”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构保持一致,或者为引用关联一个与您的项目的目标处理器架构相符的处理器架构。
4、解决方法
右键项目选择属性
(1)调试里启动外部程序 ,找到acad.exe
(2)应用程序选择4.7.2
(3)生成里目标平台选择x64(主要针对第四个问题)
再运行之后直接打开了autocad2019,在命令行输入netload,选择新鲜热乎的.dll文件,再输入hello,就会出现“Helloworld"啦~成功!!!



