注册表设置AutoCAD2010启动加载菜单
标签:
vs2008开发cad2008vs2010开发cad2010杂谈 |
分类: 软件工具 |
VS2010注册表设置AutoCAD2010自动加载自定义菜单
而系统升级到Win7
64位系统,项目也用VS2010升级CAD2010,生成后注册表项目无法启动加载菜单等。为此需要更改如下的若干的地方 :
一 更改框架版本,目标平台
依次 右击 其中的工程文件夹 比如:AutoStart --属性 ,统一改为 .NET
Framework 3.5,
实际上还是在 2.0方式下运行, 只不过不这样选择,有时候编译提示找不到引用的动态库
1 在"应用程序"中, "目标框架" 选择为 .NET Framework 3.5

2 在"生成"中, "目标平台" 选择为 x64

3 下面的只是调试使用,可以不增加
在"调试"中, "启动外部程序" 选择为 C:\Program Files\Autodesk\ACADM
2010\acad.exe
二 更改 相应的引用, 从mcad2008 --
mcad2010
C:\Program Files (x86)\Autodesk\MDT 2008\acdbmgd.dll
C:\Program Files (x86)\Autodesk\MDT 2008\acmgd.dll
C:\Windows\assembly\GAC_MSIL\Autodesk.AutoCAD.Interop\17.1.51.0__eed84259d7cbf30b
\Autodesk.AutoCAD.Interop.dll
C:\Windows\assembly\GAC_MSIL\Autodesk.AutoCAD.Interop.Common\17.1.51.0__eed84259d7cbf30b
\Autodesk.AutoCAD.Interop.Common.dll
2 重新添加引用新版本AutoCAD2010四个引用acdbmgd, acmgd,
Autodesk.AutoCAD.Interop, Autodesk.AutoCAD.Interop.Common对应为:
C:\Program Files\Autodesk\ACADM 2010\acdbmgd.dll
C:\Program Files\Autodesk\ACADM 2010\acmgd.dll
C:\Windows\assembly\GAC_MSIL\Autodesk.AutoCAD.Interop\18.0.0.0__eed84259d7cbf30b
\Autodesk.AutoCAD.Interop.dll
C:\Windows\assembly\GAC_MSIL\Autodesk.AutoCAD.Interop.Common\18.0.0.0__eed84259d7cbf30b
\Autodesk.AutoCAD.Interop.Common.dll


2 以下还保持2.0:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll
C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.configuration.dll
C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Data.dll
C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll
C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll
C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll
3 如果还有其它引用,仿照改变即可
三 更改 安装 部署项目
目标版本
如果程序中,使用了 部署项目,则还需要 更改其 目标版本。
从解决方案中,选择 部署项目 MY_CAD,
右击--属性, 将TargetPlatform,改为x64 即可
否则会出现 :
错误 2 面向“AMD64”的文件“AutoStart.dll”与项目的目标平台“x86”不兼容
D:\CAD2010\CAD.vdproj
四 解决方案中的 安装 部署项目
涉及到注册表 项目
1 安装程序 注册表的使用
2 增加如下的东西:
(1) cad2008:
HKLM\Software\Autodesk\AutoCAD\R17.1\ACAD-6013:804\Applications\TWXY
(2) cad2010:
HKLM\Software\Autodesk\AutoCAD\R18.0\ACAD-8005:804\Applications\TWXY
TWXY设置的都是:
DESCRIPTION REG_SZ
"TWXY"
LOADCTRLS
REG_DWORD
14
LOADER
REG_SZ
"[ProgramFilesFolder]TWXY\AutoStart.dll"
MANAGED
REG_DWORD
1
(3) TWXY下还可以有 Commands
HKLM\Software\Autodesk\AutoCAD\R17.1\ACAD-6013:804\Applications\TWXY\Commands
HKLM\Software\Autodesk\AutoCAD\R18.0\ACAD-8005:804\Applications\TWXY\Commands

3 在实际的注册表中,看到的是:
(1)cad2008:
HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R17.1\ACAD-6013:804\Applications\TWXY
(2)cad2010:
HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R18.0\ACAD-8005:804\Applications\TWXY
其值都是:
DESCRIPTION REG_SZ
TWXY
LOADCTRLS
REG_DWORD
14
LOADER
REG_SZ
C:\Program
Files (x86)\TWXY\AutoStart.dll
MANAGED
REG_DWORD
1

五 顺次编译生成以上各个项目
六 生成后,到部署项目的文件夹

七 启动AutoCAD
八 c#AutoCAD 加载菜单的主要代码如下:
using System;
using System.Windows.Forms;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Data;
//CAD引用
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.Colors;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.GraphicsInterface;
using Autodesk.AutoCAD.GraphicsSystem;
using Autodesk.AutoCAD.LayerManager;
using Autodesk.AutoCAD.PlottingServices;
using Autodesk.AutoCAD.Publishing;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Windows;
using System.Data.SqlClient;
//CAD引用
using Autodesk.AutoCAD.Interop;
using Autodesk.AutoCAD.Interop.Common;
//提取BOM
using SymBBAuto;
using GEAuto;
using BRepAuto;
using McadAuto;
//读取配置文件
using System.IO;
using System.Reflection;
using System.Xml;
[assembly: CommandClass(typeof(TWXY.Class))]
namespace TWXY
{
}

加载中…