Microsoft NET Compact Framework 开发常见问题解答区.docx
《Microsoft NET Compact Framework 开发常见问题解答区.docx》由会员分享,可在线阅读,更多相关《Microsoft NET Compact Framework 开发常见问题解答区.docx(97页珍藏版)》请在冰豆网上搜索。
MicrosoftNETCompactFramework开发常见问题解答区
主页技术资源库学习下载支持社区
登录|中国(简体中文)|首选项
窗体顶端
Microsoft.NETCompactFramework开发常见问题解答
发布日期:
3/30/2005|更新日期:
3/30/2005
Microsoft.NETCompactFramework开发的常见问题解答。
这个FAQ有部分是通过编辑公共
.NETCompactFramework新闻组(pactframework)贴出的问题和解答而得到的。
.NETCompactFramework团队衷心感谢参加公共新闻组的每个人,感谢他们对本FAQ和整个.NETCompactFramework开发社区做出的贡献。
要想获得FAQ项,请将电子邮件发送到
netcfaq@。
本页内容
1.开发
2.图形
3.部署
4.图形用户界面(GUI):
窗体
5.图形用户界面(GUI):
常规
6.互操作性和本机代码
7.常规
8.通信和Web服务
9.SQLCE和数据
10.其他信息
11.连接
12.基于WindowsMobile的Smartphone
1.开发
1.1.什么是Microsoft.NETCompactFramework?
Microsoft.NETCompactFramework是针对Microsoft.NET计划的智能设备开发框架,是实现Microsoft随时随地在任何设备上为客户提供良好体验的目标的关键所在。
.NETCompactFramework将托管代码和Web服务带给了智能设备,它允许安全的、可下载的应用程序在诸如个人数字助理(PDA)、移动电话和机顶盒等设备上运行。
1.2.开发.NETCompactFramework应用程序需要什么工具?
VisualStudio.NET为基于WindowsMobile的PocketPC2000、基于WindowsMobile的PocketPC2002和WindowsCE.NET4.1设备开发基于.NETCompactFramework的应用程序需要2003Professional或更高版本。
VisualStudio.NET2003附带了.NETCompactFramework。
在最新的WindowsMobile平台上进行开发还有其他的SDK可用:
WindowsMobile2003PocketPCSDK:
WindowsMobile2003SmartphoneSDK:
本文将提供用.NETCompactFramework1.0和VisualStudio.NET2003开发健壮的智能客户端设备应用程序的说明。
1.3.哪里可以下载最新的工具和软件?
VisualStudio.NET2003试用版可以通过以下地址获得:
最新的平台更新和.NETCompactFrameworkservicepack可以通过以下地址获得:
1.4..NETCompactFramework支持什么设备?
.NETCompactFramework支持基于WindowsMobile2000的PocketPC、基于WindowsMobile2002的PocketPC、基于WindowsMobile2003的PocketPC、基于WindowsMobile的Smartphone和运行WindowsCE.NET4.1及更高版本的嵌入式系统。
1.5.以后.NETCompactFramework将会支持什么设备?
不久以后,.NETCompactFramework将会作为一个操作系统(OS)组件,在所有的Microsoft智能设备中提供,包括将来基于WindowsMobile的PocketPC设备、基于WindowsMobile的PocketPCPhoneEdition、基于WindowsMobile的Smartphone、WindowsCEforAutomotive和MSTV。
每种特定设备的具体时间选择将由各个产品发布周期确定。
WindowsCE.NET4.1也支持.NETCompactFramework,将其作为一个集成的OS组件,因此允许OEM使用PlatformBuilder工具将.NETCompactFramework嵌入到所有装备WindowsCE的新设备中。
1.6.调试器在与模拟器建立连接时为什么会失败(错误启动应用程序)?
以下链接是针对调试的安装和疑难解答指南:
1.7..NETFramework和.NETCompactFramework之间有什么区别?
请参见下面.NETFramework和.NETCompactFramework之间的比较:
.NETCompactFramework类库比较工具中的信息:
1.8.最新的.NETCompactFrameworkServicePack有什么新内容?
.NETCompactFrameworkSP2提供了针对大量缺陷的补丁。
补丁列表可由以下链接获得:
.NETCompactFrameworkSP1提供了针对大量缺陷的补丁。
补丁列表可由以下链接获得:
注:
ServicePack2(SP2)替代了ServicePack1(SP1),它包括所有servicepack的最新更新。
1.9.在.NETCompactFramework开发中,基于WindowsMobile的PocketPC和WindowsCE.NET之间有什么区别?
这篇文章概述了为基于WindowsMobile的PocketPC和MicrosoftWindowsCE.NET平台开发基于Microsoft.NETCompactFramework的应用程序之间的区别。
1.10.在哪里可以找到有关如何创建基于.NETCompactFramework的应用程序的更多信息?
下列资源有助于您了解如何创建基于.NETCompactFramework的应用程序:
∙.NETCompactFramework快速入门
∙MSDN移动与嵌入式技术开发人员中心中的.NETCompactFramework白皮书:
1.11..NETCompactFramework的文档在什么位置?
1.12.如何指定在每次调试器运行时不必复制依赖文件?
在VisualStudio.NET2003中,右键单击该项目并选择Properties。
将BuildAction更改为None。
这样就不会再复制此文件了。
如果此文件已修改或者需要再复制,则将BuildAction更改为Content。
1.13.如何设置模拟器属性?
在VisualStudio.NET2003中,从菜单中选择Tools->Options。
然后打开DeviceTools文件夹并选择Devices。
现在应该能看到一个显示设备选择列表的对话框。
选择您想要修改的设备,然后按Configure按钮。
现在您应该能够看到一个含有几个选项卡的对话框,它允许您访问和修改设置,例如内存和屏幕大小。
1.14.如何调试Microsoft.NETCompactFramework应用程序?
Microsoft.NETCompactFramework完全集成在VisualStudio.NET2003中,它支持的调试功能与对其他VisualStudio.NET应用程序类型可用的调试功能相同。
但是,在独立设备或在仿真器中调试运行的应用程序时,用户需要注意一些特殊事项。
请参考下列建议以获得最详尽的.NETCompactFramework调试体验:
1.15.如何开始使用VisualBasic.NET为设备开发应用程序?
了解如何使用用于VisualStudio.NET的智能设备扩展(SDE)来为支持.NETCompactFramework的智能设备构建Windows应用程序。
这篇文章包括对整个开发、调试和部署过程的检查,并探讨了.NETFramework和.NETCompactFramework之间的区别。
1.16.如何将.NETCompactFramework程序集安装到全局程序集缓存(GAC)中?
1.17.当通过VisualStudio.NET2003部署智能设备应用程序时,如何处理“共享冲突”?
这篇文章阐述了阻止通过VisualStudio.NET2003部署应用程序的共享冲突产生的原因,并介绍了解决这一冲突的方法。
1.18.公共语言运行库(CLR)是什么?
.NETCompactFramework提供了一个名为公共语言运行库的运行时环境,它运行代码并提供一些可以使开发过程更加轻松的服务。
在这篇概述中可以了解更多内容:
1.19.全局程序集缓存(GAC)是什么?
每台安装公共语言运行库的计算机都有一个机器范围的代码缓存,称为全局程序集缓存。
全局程序集缓存中存储的程序集是专门由计算机中的几个应用程序共享的程序集。
这篇文章提供了有关GAC的更多信息:
1.20.在.NETCompactFramework中如何管理内存?
自动内存管理是在托管执行过程中CLR提供的服务之一。
CLR垃圾回收器管理应用程序的内存分配和释放,如这篇文章所描述的:
1.21.当网络协议数超过50时,为什么就无法部署到设备?
请参见本FAQ中标题为“11.4.当网络协议数超过50时,为什么无法部署到设备?
”的项。
1.22.为什么有跨平台二进制?
.NETCompactFramework和执行引擎是完整的.NETFramework和CLR的一个兼容子集实现。
当不存在强名称绑定策略时,针对.NETCompactFramework编译的应用程序将会绑定和运行在整个.NETFramework上,但有一些重要的例外:
∙.NETCompactFramework程序集由不同的强名称密钥对进行签名,这样CLR可以将它们与其全部.NET副本区分开来。
∙将来发布的完整的.NETFramework和CLR将包括绑定策略,它可以将完整的.NETFramework程序集替换为兼容.NETCompactFramework引用。
然后在一些常见的情况中,它可以重复使用现有的组件而不需要重新链接。
例如,如果您的组件只引用.NETCompactFrameworkSystem和System.NET类,则它可以在.NETCompactFramework和整个.NETFramework上很好地运行而不需要重新链接。
∙如果您的引用功能与.NETCompactFramework不同,例如基于WindowsMobile的PocketPC特定的UI控件,则您的程序将会在与整个.NETFramework绑定时失败。
∙就像跨平台二进制兼容性简化了中间件组件的开发和部署一样,Microsoft相信胖客户端应用程序应该利用特定于设备的功能来提高用户体验。
这意味着最好的GUI代码可能是特定于目标的。
∙虽然Microsoft已经做出了很大的努力,将特定于设备的功能分解为离散的命名空间和程序集以避免绑定冲突,但可能存在版本1无法处理的不兼容分解的情况。
在这些情况下,在整个.NETFramework中滥用特定于设备的功能将会引发运行时异常而非应用程序加载异常。
1.23.所有这些ARM二进制是些什么?
XScale支持ARMv5指令集,不过它也向后兼容ARMv4指令集。
它有三个变种:
∙ARMv4->它只支持32位ARMv4指令
∙ARMv4T->“T”代表Thumb。
Thumb是ARM16位指令模式
∙ARMv4I->“I”代表交互作用(Interworking)。
它允许32位指令和16位指令共存
对于其他的ARM处理器:
∙StrongARM(SA1110)->只支持ARMv4指令
∙ARM920T等->通常支持这三个变种
.NETCompactFramework将提供三组用于ARM的二进制。
∙用于基于WindowsMobile2000和基于WindowsMobile2002的PocketPC2002的ARMv4。
它将运行ARM设备(包括Xscale)的所有ARM。
部署到这些设备中的cab只能在名称中包含“arm”。
∙用于WindowsCE.NET的ARMv4。
它将运行在通过PlatformBuilder中的ARMv4内核编译的WindowsCE.NET设备中。
它也是用于基于WindowsMobile的PocketPC2003的二进制。
为这些设备部署的cab在名称中包含“armv4”。
∙用于WindowsCE.NET的ARMv4T或ARMv4I。
它将运行在通过Platformbuilder中的ARMv4T或ARMv4I内核编译的WindowsCE.NET设备中。
部署到这些设备中的cab在名称中包含“armv4T”。
1.24.如何写入设备的注册表中?
VisualStudio.NET没有附带用于WindowsCE的远程注册表编辑器。
要设置注册表项,可以使用以下工具之一:
∙MicrosoftEmbeddedVisualToolsRemoteRegistryEditor
∙MicrosoftWindowsCEPlatformBuilderRemoteRegistryEditor
∙基于PHMWindowsMobile的PocketPCRegistryEditor(共享件,可以很容易在网上找到)
1.25.安装完成后如何防止.CAB文件被删除?
将.CAB文件的属性设置为只读,可以防止.CAB文件被自动删除。
1.26.如何确定设备中安装的.NETCompactFramework的版本?
发行的每个.NETCompactFramework版本都有一个不同的Win32文件版本号(它是与程序集版本相独立的版本号,对于发行的所有.NETCompactFramework第一版(包括ServicePack),这两者应该是一样的)。
要查看安装的是什么版本,可以使用文件资源管理器,定位于设备的\Windows目录,并单击名为CGACUTIL的文件。
将会弹出一个消息框,显示安装在设备中的.NETCompactFramework的Win32文件版本。
RTM=1.0.2268.0SP1=1.0.3111.0SP2Recall=1.0.3226.0SP2Beta=1.0.3227.0SP2Final=1.0.3316.0
要以编程方式确定版本,可以使用System.Environment.Version.ToString()。
要通过桌面安装程序确定版本,请参见本FAQ中标题为“3.10.如何通过桌面安装程序检测.NETCompactFramework的版本?
”的项。
1.27.如何将文件复制到模拟器中?
一种方式是在开发PC中创建一个文件共享,然后通过模拟器中的文件资源管理器连接到该共享。
也可以将文件从共享位置复制并粘贴到模拟器的本地文件系统中。
另一种方式是将文件添加到智能设备项目中,并将它们的BuildAction属性设置为“Content”。
有关“文件属性”的更多信息,请参阅VisualStudio.NET联机文档:
以下内容逐步介绍了如何将一个“Content”文件添加到智能设备项目中:
1.打开或创建一个智能设备项目,
2.在“View”菜单中,单击“SolutionExplorer”,
3.在“SolutionExplorer”中,右键单击您的项目,指向“Add”并单击“AddExistingItem”。
浏览至想要的文件并添加到该项目中。
4.在“SolutionExplorer”中,右键单击添加的文件并单击“Properties”,
5.如果BuildAction属性尚未设置,则将它设置为“Content”。
1.28.为什么基于WindowsMobile的PocketPC2002SDK安装失败?
表现:
在“注册组件”时,基于WindowsMobile的PocketPC2002SDK安装程序挂起。
原因:
在尝试运行模拟器时,未注册的组件导致安装挂起。
解决办法:
在控制台窗口提示中键入:
cd\WINNT\system32regsvr32atl.dll
1.29.如何调试智能设备应用程序使用的Web服务?
您需要将调试器附加到ASP.NET辅助进程中。
有关更多信息,请参见以下链接:
1.30.什么是.NETCompactFramework的足迹?
.NETCompactFrame