环境: OS:Windows Xp sp3 IDE: Microsoft Visual Studio 2008 版本 9.0.30729.1 SP Microsoft .NET Framework 版本 3.5 SP1 说明: 本篇文档的目的,是为了简要说明,如何使用VS2008制作智能设备的CAB安装包(Wince测试可以使用;Mobile是否可用,未测试)。 第一步:创建Cab工程。 打开VS2008后,建立工程。 菜单 ”新建“ --> “项目”,打开“新建项目”对话框,选择“智能设备CAB项目”,如下图: 输入完名称,选择好位置后,点击确定,工程建立完毕。如下图:
第二步:添加要打包的程序: 直接将程序的目录拖到应用程序文件夹,直接拖的原因是添加文件速度快。也可以右键添加文件。
文件拖放完毕后,视图内已经有文件(红框内标注),左侧资源管理器,也有内容了:
第三步,编译: 菜单“生成”-->“生成解决方案”,完成编译。 不过,添加文件后,就去编译,有可能出错的: ------ 正在启动项目“SmartDeviceCab1”的预生成验证 ------ ------ 已完成项目“SmartDeviceCab1”的预生成验证 ------ ------ 已启动生成: 项目: SmartDeviceCab1, 配置: Debug ------ 正在生成文件“D:\Cab\CAB\SmartDeviceCab1\SmartDeviceCab1\Debug\SmartDeviceCab1.cab”... "c:\Program Files\Microsoft Visual Studio 9.0\smartdevices\sdk\sdktools\cabwiz.exe" "D:\Cab\CAB\SmartDeviceCab1\SmartDeviceCab1\Debug\SmartDeviceCab1.inf" /dest "D:\Cab\CAB\SmartDeviceCab1\SmartDeviceCab1\Debug\" /err CabWiz.log Windows CE CAB Wizard Warning: Section [RegKeys] has no data Warning: Section [DefaultInstall] key "AddReg" - there are no section entries to process Warning: Section [Shortcuts] has no data Error: The INF file contains Unicode characters that could not be converted correctly to ANSI 错误: Windows CE CAB 向导遇到了错误。有关更多信息,请参阅输出窗口。 ========== 生成: 成功或最新 0 个,失败 1 个,跳过 0 个 ========== 出错的原因是:注册表/文件/目录/工程的属性值中出现了中文;在使用过程中,属性值中没有使用汉字,就没有出现这样的错误。我这里出现“微软中国”。
修改后编译成功,日志如下: ------ 正在启动项目“SmartDeviceCab1”的预生成验证 ------ ------ 已完成项目“SmartDeviceCab1”的预生成验证 ------ ------ 已启动生成: 项目: SmartDeviceCab1, 配置: Debug ------ 正在生成文件“D:\Cab\CAB\SmartDeviceCab1\SmartDeviceCab1\Debug\SmartDeviceCab1.cab”... "c:\Program Files\Microsoft Visual Studio 9.0\smartdevices\sdk\sdktools\cabwiz.exe" "D:\Cab\CAB\SmartDeviceCab1\SmartDeviceCab1\Debug\SmartDeviceCab1.inf" /dest "D:\Cab\CAB\SmartDeviceCab1\SmartDeviceCab1\Debug\" /err CabWiz.log Windows CE CAB Wizard ========== 生成: 成功或最新 1 个,失败 0 个,跳过 0 个 ========== 附加说明:
1. 增加目录 : 右击“目标计算机上的文件系统”。
2.打开注册表视图: 右点工程名称-->"视图"-->"注册表":
3.修改注册表: 右点-->"新建": 特别说明:键值中也不能出现中文汉字,否则也出现第三步编译中的错误。
4.修改CAB在Wince设备上的默认安装目录: 在VS2008的操作画面中没有找到如何设置,只能去修改*.info文件了。 到Debug目录下找到对应的*.inf,打开后找到脚本片段: [CEStrings] AppName="SmartDeviceCab1" InstallDir=%CE1%\%AppName% 修改InstallDir的值,即可。 如安装到根目录:InstallDir=\%AppName% 如安装到\Flash目录:InstallDir=\Flash\%AppName% 指定了安装目录后,会影响到安装的,如果指定的目录不存在,会安装失败。 修改后保存*.inf,就该生成cab文件,在编译日志中找到编译命令,前边的描述中我已经字体蓝色加粗了。 放在CMD中运行一下就行了。这里再把指令贴出来:
此时已经我们想要的CAB安装包已经得到了,就在工程的Debug目录下。 另外:不管用VS2005还是VS2008打CAB包,好像有BUG;就是被打包的文件,不同路径但同名,同名文件,会被当做同一个文件处理。请谨慎使用。再推荐一个工具,名字叫《wince Cab manager》,版本3.0,如何使用如何下载,问问度娘吧。 文档到此结束。还请高手们,不啬赐教!! |
|
来自: 飞鹰飞龙飞天 > 《pocket pc》