明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8234|回复: 21

[运行时] 让你的AutoCad支持高版本.Net

  [复制链接]
发表于 2015-4-8 11:14 | 显示全部楼层 |阅读模式
本帖最后由 雪山飞狐_lzh 于 2015-4-8 12:05 编辑

现在.Net的发展迅猛,但是低版本AutoCAD开发还要使用对应版本的.Net
这很不爽
为什么不能用扩展属性
为什么不能用Linq
为什么不能用dynamic
。。。
下面的方案可以解决这个问题
以AutoCad2008,VS2010,XP系统为例

找到AutoCad的安装目录
在acad.exe.config文件(没有就新建一个)中键入
<configuration>
   <startup useLegacyV2RuntimeActivationPolicy="true">
      <supportedRuntime version="v4.0" sku = ".NETFramework,Version=v4.0"/>
   </startup>
</configuration>
然后保存

在VS中建立一个.Net4.0的类库
引用相应的mgd.dll
然后键入下面的代码
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using Autodesk.AutoCAD.Runtime;
  6. using Autodesk.AutoCAD.ApplicationServices;

  7. namespace TlsCad.Test
  8. {

  9.     public class Commands
  10.     {

  11.         [CommandMethod("t_1")]
  12.         public void Test1()
  13.         {

  14.             dynamic db = Application.DocumentManager.MdiActiveDocument;
  15.             dynamic ed = db.Editor;
  16.             ed.WriteMessage("OK!");

  17.         }



  18.     }

  19. }


运行结果:
AutoCAD 菜单实用程序已加载。
命令: COMMANDLINE

命令: netload
命令: t_1
OK!


评分

参与人数 1明经币 +1 收起 理由
自贡黄明儒 + 1 看不懂我也顶你

查看全部评分

发表于 2020-10-2 14:43 | 显示全部楼层
gxlx2007 发表于 2015-4-9 16:40
有版本转换器,一切都OK

哪里有版本转换器
发表于 2020-4-21 15:03 | 显示全部楼层
好东西,你值得拥有!!!!
发表于 2020-9-18 14:24 | 显示全部楼层
先来踩点,支持
发表于 2015-4-8 11:35 | 显示全部楼层
群里赶来支持狐哥
发表于 2015-4-8 11:41 | 显示全部楼层
版主呀,搞个lisp的插件可好?

点评

问题太大了 呵呵 ea好像一直在搞LispFunction,有问题先找他试试  发表于 2015-4-8 12:05
 楼主| 发表于 2015-4-8 12:01 | 显示全部楼层
唯一的问题是,如果cad支持的.Net框架不是.net4.0,似乎不能调试。。。
只能在高版本Cad中调试
应该有办法解决吧,汗
发表于 2015-4-8 18:27 | 显示全部楼层
看得不是很明白,
还有一个问题,就是13版以前的CAD和13版(含)以后的CAD,其基本类库的名字换掉了,很郁闷
 楼主| 发表于 2015-4-8 18:41 来自手机 | 显示全部楼层
Autocad低版本使用的.net2.0框架.正常情况无法netload高版本dll.
上面的配置是让cad运行在4.o运行库以加载dll
发表于 2015-4-8 22:39 | 显示全部楼层
看来用.net开发,版本问题也是比较麻烦
用vba/vb开发,版本问题基本不是问题,可偏偏不是autodesk主要发展方向。。。。

点评

这样设置 版本就不是大问题了  发表于 2015-4-8 23:19
发表于 2015-4-9 16:40 | 显示全部楼层
有版本转换器,一切都OK
 楼主| 发表于 2015-4-9 17:51 来自手机 | 显示全部楼层
版本转换器可不能直接转dll吧
 楼主| 发表于 2015-4-9 20:03 | 显示全部楼层
本帖最后由 雪山飞狐_lzh 于 2015-4-9 20:06 编辑

今天测试了一下 可以用Auto2012调试 2008不能调试(?),但可以在这两个版本使用同一个。Net4.0dll
也就是说 现在应该不用在意Dll的版本号,全用最新的(要通用估计还得是4.0,因为XP 最高到4.0)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-25 08:15 , Processed in 0.395590 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表