您的位置:首页 > 编程语言 > C#

在wince6.0用vs2005下远程调试c#代码断点空心问题解决方式

2012-03-30 16:27 344 查看
用VS2005开发基于Compact Framework的手机软件有一阵子了,由于资料太少,出了很多稀奇古怪的问题,好在在玩Kylix开发的时候已经都把人磨练成熟了,因此慢慢查找原因也基本靠自己的力量一一解决,现在把这些问题记载下来,给以后同好者遇到相同问题的时候参考。

先说一个最奇怪的问题,就是VS2005原始版本开发WM5软件的时候用模拟器调试,一切OK,单步跟踪一切正常。但是换到我的577W的真机环境下,可以执行,却不能调试。一旦启动调试,VS2005就报“当前不会命中断点。尚未加载指定的模块。”,如下图:



这样我们就无法调试了,起先我在网上查资料说是没有加载调试信息的原因,但是在模拟器中调试是正常的,在真机上也能正常运行,就是无法调试,后来通过读取577W的注册表[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETCompactFramework]下我发现我手机安装的CompactFramework版本为2.0.7045.00即2.0SP2版本,而VS2005带的是2.0.5238.0,因此版本不一致,可能调试信息就无法加载。

VersionRelease
1.0.2268.01.0 RTM
1.0.3111.01.0 SP1
1.0.3226.01.0 SP2 (Recalled)
1.0.3227.01.0 SP2 Beta
1.0.3316.01.0 SP2 RTM
1.0.4177.01.0 SP3 Beta
1.0.4292.01.0 SP3 RTM
2.0.4037.02.0 May CTP
2.0.4135.02.0 Beta 1
2.0.4317.02.0 November CTP
2.0.4278.02.0 December CTP
2.0.5056.02.0 Beta 2
2.0.5238.02.0 RTM
2.0.6103.02.0 SP1 Beta
2.0.6129.02.0 SP1 RTM
2.0.7045.02.0 SP2 RTM
3.5.7066.03.5 Beta 1
3.5.7121.03.5 Beta 2
原因找到了,我们有2种解决方法,一个是卸载577W的CF框架,然后用VS2005来部署CF即可,这种方法适用于那些ROM不带CF2.0的手机,如果是WM6的手机,因为都带了CF2.0sp2,因此这种方法不可行。因此最好的方法是通过PC机上的增加删除程序,卸载Compact Framework2.0框架,然后从微软站点下载上述表格中跟你手机相匹配的CF框架可再发行包,安装在你VS2005的计算机上即可调试。

经过试用,效果良好,彻底解决了VS2005在真机上调试的问题。(模拟器上调试良好是因为模拟器本身不带2.0CF框架,是VS2005部署上去的),另外我强烈建议卸载VS2005原来自带CF2.0框架的原因是,2.0.5238版本的CF的CAB有点问题,只能安装在机身上,不能安装在卡上,安装完后577W机身存储不过2M了,完全不能用。而2.0sp1以后的版本都可以安装在卡上,极大的节省了机身存储空间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: