2010-02-08 106 views
2

我在使用我的.inf文件中的宏创建我的cab时遇到问题,特别是在设置InstallDir字符串时。如果我做这样的事情:在Windows CE上安装cab文件时出错

InstallDir=\<PathToProgramFiles>\MyAppName 

然后一切工作正常。但是,如果我这样做:

InstallDir=%CE1%\MyAppName 

然后我得到试图安装驾驶室(双攻它在我的设备上),当出现以下错误:“ MyAppName没有安装成功,请重新运行安装程序”

这似乎只适用于内置的宏字符串。我可以使用%AppName%没有任何问题。也许有一些注册表设置没有正确设置,通常会解决%CE1%宏?

有关发生了什么的任何想法?

编辑:我的设备没有\Program Files目录。看来%CE1%宏总是会解析到那个路径,如果inf文件中指定的InstallDir不存在(除了最后一个目录部分,那么安装失败,手动创建\Program Files修复了这个问题,因为很多设备我正在为他们的Program Files目录有不同的路径,有没有一种通用的方式来让安装程序默认到实际的Program Files目录?我想我唯一的选择是不指定路径并强制用户选择一个?

回答

1

首先,在this链接,您可以找到快捷方式和它们的含义(在%C ..%),转到附录B. The Windows CE5 MSDN链接。

可以添加Setup Dll添加到您的CAB安装程序,该安装程序将检查目录结构并在不存在的情况下创建一个文件夹。您可能会发现this SO问题有用。

警告:如果您的目标是定期安装Windows CE设备,请注意将文件放置到基于RAM的文件系统的位置,然后这些文件将在重新启动后消失。

+0

感谢您的信息。我认为我的问题是最终定义的宏是用于本地化的目的,而不是查找真正的路径(例如SHGetSpecialFolder())。我想我最终将不得不建立我自己的安装程序,以妥善处理这些差异。它看起来不像一个自定义安装DLL将允许我调整安装路径... – Jason 2010-02-09 14:10:20