本帖最后由 雪山飞狐_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
然后键入下面的代码
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using Autodesk.AutoCAD.Runtime;
- using Autodesk.AutoCAD.ApplicationServices;
- namespace TlsCad.Test
- {
- public class Commands
- {
- [CommandMethod("t_1")]
- public void Test1()
- {
- dynamic db = Application.DocumentManager.MdiActiveDocument;
- dynamic ed = db.Editor;
- ed.WriteMessage("OK!");
- }
- }
- }
运行结果:
AutoCAD 菜单实用程序已加载。
命令: COMMANDLINE
命令: netload
命令: t_1
OK!
|