更新:2007 年 11 月
移动运营商或者设备制造商提供的大多数 Windows Mobile 设备都预先配置了一些安全设置,这些设置限制未签名应用程序的执行与未签名 CAB 文件的安装。为使应用程序能够运行,必须使用安装在最终用户设备上的证书对应用程序进行签名。
如何对设备应用程序进行签名
若要对应用程序进行签名,必须对组成该应用程序的所有 EXE、托管程序集、DLL、CAB 和 MUI(多语言用户界面)文件进行签名。若要以图形方式查看如何在设备项目中进行签名,请参见设备签名过程的图形化流程图。下列主题解释了如何对设备应用程序进行签名:
- 如何:将 Signtool.exe 作为生成后事件启动(设备) .gif) 说明: 说明:- 如果运行更改二进制文件的后期生成步骤,则必须重新对二进制文件进行签名。也就是说,必须禁用项目属性中的“Authenticode 签名”,并且将签名作为一个生成后步骤完成。这一操作是必需的,因为签名后对二进制文件所做的任何更改都会使签名无效。因此,必须重新对二进制文件进行签名。 
对应用程序进行签名以便完成日常开发工作
如果您在一个设备上开发应用程序,而该设备的安全设置的限制性比最终用户的设置低,那么您可能不会与最终用户遇到相同的安全警告或错误。因此,最好在启用安全设置的设备上开发应用程序,以此来模拟最终用户的安全环境。为此,请使用 Visual Studio 开发证书对设备应用程序进行签名,并将该证书安装到您的开发设备或仿真程序上。采用这一在开发阶段使用开发证书签名的过程,有助于改善最终用户的体验。Visual Studio 中包含用于日常开发工作的证书以及一个证书安装工具。
在设备上安装所需的证书
- 使用任何可用的连接机制连接到设备。 
- 将 VSDCerts.cab 从开发计算机复制到设备。 - 默认情况下,VSDCERTS.cab 位于 驱动器:\Program Files\Microsoft Visual Studio 9.0\SmartDevices\SDK\SDKTools 下。 
- 在设备上,解压缩 VSDCerts.cab 以安装证书。 
对应用程序进行签名以便发布
SDK 证书仅用于开发或测试。最终用户的设备上不会安装 SDK 证书。因此,当应用程序准备好发布时,必须使用用户设备上的证书对其进行签名。所有 OEM 和移动运营商在其目前交付的设备中都附带了 Mobile2Market 非特权证书。大多数 OEM 和移动运营商还附带了 Mobile2Market 特权证书。因此,除非您的应用程序必须作为受信任的应用程序在不具有 Mobile2Market 特权证书的设备上运行,否则您应该使用其中一种 Mobile2Market 证书对应用程序进行签名。有关 Mobile2Market 计划的更多信息,请参见“Windows Mobile Developer Center”(Windows 移动开发人员中心)中的 Mobile2Market: Code Signing for Windows Mobile Applications(Mobile2Market:Windows Mobile 应用程序的代码签名)。
若要在不具有 Mobile2Market 特权证书的设备上运行应用程序,必须请求 OEM 或移动运营商对应用程序进行签名。
| .gif) 说明: | 
|---|
| 如果设备安全配置要求对二进制文件进行签名,而应用程序二进制文件未签名,则应用程序不会运行。有关安全配置的更多信息,请参见配置 Windows Mobile 设备的安全。 |