AutoCAD 2010的二次开发告一段落,现在整理一些开发中遇到的问题。
最早遇到的问题是关于AutoCAD 2010在VS 2010上无法调试。奇怪的是这问题只出现在我同事电脑上,我的电脑一切OK,我暗喜^_^,莫非是人品问题。
开发环境:Windows XP SP3+VS2010+AutoCAD2010
这里主要讨论以下几个问题:
1、AutoCAD 2010在VS 2010上无法命中断点问题;
2、调试AutoCAD 2010在VS 2010 中的实现自定义添加;
3、设置断点,它显示一个空的圆圈,当前不会命中断点,还没有为该文档加载任何符号。
关于问题1,断点不起作用的原因归结为Visual Studio 2010不会选择正确的版本的调试器,在调试时启动了默认的debugger(v4.0),此调试器不会看到针对旧版本的.NET 项目中的断点,但是为了让我们的.NET应用程序能在AutoCAD 2010等上运行,我们需要.NET Framework 2.0( 3.5也是运行在CLR 2.0之上的)。
下面提供三种方法使VS 2010 在这些项目上使用正确的调试器 。哪种解决方案最适合您将取决于您具体的方案(我会倾向于解决方案2,够简单)。
解决方案1
启动AutoCAD2010程序,加载您开发的组件(可以通过写入注册表的方式实现自动加载),然后将它(acad.exe)附加到VS2010中(调试->附加到进程)。需要注意的是选择代码类型默认是自动确定类型的,少数情况自动确定的类型并不一定正确,这时候会出现无法加载符号的情况,即问题3所描述,所以需要我们手动勾选代码类型。
解决方案2
修改AutoCAD的配置文件,这个文件在AutoCAD的安装目录下。打开配置文件(acad.exe.config)如下:
修改配置文件,以便它包含 <supportedRuntime 版本="v2.0.50727" />节点,如下:
解决方案3
把宿主acad.exe文件作为一个已有的项目添加到您的解决方案中,并把debugger设置为v2.0。
右键单击Solution Explorer,选择添加->现有项目,浏览到AutoCAD的启动文件Acad.exe
右键单击该项目,把它设置为启动项目 设为启动项目
打开项目属性对话框
设置 调试器类型 为 托管(3.5、3.0、2.0版)
至此,可以正常调试了。
vs2010无法命中断点的解决方案:
1、JS代码调试需要检查IE浏览器中JS调试是否禁用;并且只能用IE浏览器;
2、IE8 IE9无法调试检查注册表
HKEY_LOCALMACHINE -> SOFTWARE -> Microsoft -> Internet Explorer -> Main
增加dword键TabProcGrowth,值为0就行
如果已经存在该键值,检查该键值是否为0
VS2010 调试时无法命中断点的有关问题:
-----解决方案--------------------
1.你的调试浏览器是否非IE,我用遨游就无法命中断点,改回IE7就可以。
------解决方案--------------------
哦,你的asp.net项目里,项目属性中web栏下面的调试器有没有勾上silverlight调试器?
我的是开了silverlight和asp.net调试器,没开本机代码和sql server。
另外没用过IE8,能否支持调试我就不清楚了。
------解决方案--------------------
网上有资料说silverlight调试器和asp.net调试器不能共存,否则无法调试silverligth项目,但我都开了也没事,你可以试试只开silverlight调试器。
这都不行我就无解了 ,呵呵。
------解决方案--------------------
楼主重新装一下.net3.5试试看。。。
------解决方案--------------------
那你不妨换成IE7,呵呵。其实silverlight4跟.NET3.5没关系,它是.NET4下的。
------解决方案--------------------
1、清理sl和web项目
2、在web项目中 选择浏览方式
3、选择默认浏览方式为 IE或者 360
4、直接浏览
------解决方案--------------------
先右键 Clean ,再build 就 OK!!!!!!!!!!!!