Windows Embedded Compact 7 打包和部署程序(下)

本文详细介绍了在Windows Embedded Compact 7中如何打包和部署程序,包括程序集的强命名、全局程序集缓存(GAC)的使用以及cesetup.dll组件的应用。强调了GAC中程序集必须经过签名才能实现强名称,从而确保不同版本或签名的程序集可被区分。同时,文章展示了如何通过创建和签名.dll文件来添加自定义安装操作,以便在设备安装和卸载过程中执行特定任务,如隐藏或恢复文件、强制GAC刷新等。
摘要由CSDN通过智能技术生成


1.5.2 设计规范 

由于.NET Compact Framework的局限性,某些要求对托管代码开发者来说被放宽了,例如,在程序中提供退出选项或支持平台的“帮助”菜单。现在,您可以决定是否在程序中添加退出选项。这个决定基于设备的使用模式和目标用户的需求。在Compact Framework 2.0版本中,能够通过处理来自窗体的HelpRequested事件对“帮助”做出支持(正如本章前面所述)。使用这种内建机制的优点是,实现了与其他程序的一致性,也不至由于添加“帮助”按钮,而扰乱菜单或工具栏。

1.6 全局程序集缓存 

全局程序集缓存(Global Assembly CacheGAC)用于集中存储针对.NET.dll文件,这样便可以被多个程序共享。要安装到GAC,程序集必须由一个密钥对进行签名,以获得一个强名称。用密钥对对程序集进行签名,便能确保如果两个同名的程序集安装在GAC中,会由于版本或密钥签名不同而被区别看待。

 

1.6.1 对程序集进行强命名  

要对程序进行强命名,不仅要赋予它们唯一的版本号,还要提供身份验证。因为,要生成一个匹配签名的程序集,您必须给程序集相同的密钥对。而要将您的程序集用强名称签名,需要一个密钥对文件。通常,只创建一个密钥对文件,然后就可以使用它对任何托管程序集实施强命名操作。这个用于.NET程序集的强命名机制,无论对桌面,还是对设备来说都是相同的。打开程序集项目的项目属性窗口,在“签名”选项中,选择“签名”选项。如果没有密钥文件(扩展名为.snk的文件),可以在“选择强名称密钥文件”中选择“新建”生成一个。如图15-8

 

1-8项目签名选项中选择密钥对文件


1.6.2 何时以及如何使用全局程序集缓存  

不是所有的.dll文件都有必要安装在GAC中。将.dll文件与您的程序安装在一起,可以确保程序不会由于系统中其他程序文件的补丁的安装而自身遭受破坏。然而,您可以将一些具有普遍性的.dll文件安装在GAC中,这样便能缩小安装程序的大小。框架所有的基础类库和Microsoft SQL Server程序集都安装在GAC中。

程序集通过Windows目录下的一个文本文件添加到GAC中。此文件只包含要添加到GAC中的.NET Compact Framework程序集列表。当.NET Compact Framework应用程序启动时,系统会搜索新的.gac文件,如果发现,它会导入指定的.dll文件。如果某个.gac文件被移除,注册过的.dll文件也会从GAC中移除。

通过.cab文件项目可以很容易将您的程序集添加到GAC中。在“文件系统编辑器”中,右键单击“目标计算机上的文件系统”,选择“添加特殊文件夹”。然后,选择菜单底部的“Global Assembly Cache文件夹”。将托管.dll文件拖放到此文件夹,这便可以自动生成必要的.gac文件来注册它们。如果您的程序集没有强名称,生成时会出现一个错误。用这个方法将程序集安装到GAC时,唯一需要注意的是,此文件直到下一次.NET Compact Framework运行库被启动时才会被移入。然而您可以通过调用带有/refresh 标记的Cgacutil.exe命令使其立即执行。

 

1.6.3 学用组件cesetup.dll  

Windows Embedded Compact 7中的cab安装引擎有在安装过程中添加自定义操作的机制。例如,您若添加一个自定义操作,检查设备上是否有必要的组件,或者执行一些不能够直接由.cab文件程序包完成的一些更改(例如,删除一些文件来锁定设备,正如本章前面所述),您可以通过创建针对.cab文件项目的本地代码(C++).dll文件,添加自定义操作。这个.dll文件必须暴露

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胡耀文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值