Windows CE 设备:在无头设备上使用 .zip 或 .cab 进行部署?
我有一个正在部署的 Windows CE 设备,但我们可以完全控制其上安装的软件。
这不是典型的 Windows Mobile 设备,这是用户不会与之交互的无头设备。 我知道在 PDA 风格的 WinCE 设备上,.cab 文件是首选的应用程序分发方法。
然而,在无头设备上,我们将编写某种类型的升级/补丁服务器,它将 ping 服务器以获取更新、下载更新并在可用时自动安装。
我仍然需要 .cab 文件,还是 .zip(甚至其他文件)更好?
.cab 文件有哪些要求 - 什么样的限制/要求可能会妨碍并造成烦恼? 有什么好处?
I have a Windows CE device that we are deploying, but we have complete control of the software installed on it.
This is not a typical Windows Mobile device, this is a headless device that the user will not interact with. I know that on PDA-style WinCE devices, the .cab file is the preferred application distribution method.
However, on a headless device, we will be writing some type of upgrade/patch server that will ping a server for updates, download them, and auto-install when they are available.
Do I still want a .cab file, or is a .zip (or even something else) better?
What are the requirements for a .cab file - what kind of restrictions / requirements might get in the way and be an annoyance? What are the benefits?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我坚持将 CAB 作为一个包,因为即使是无头设备也可以使用 CAB 提取工具。 如果您对其进行压缩,则必须添加 ZIP 支持库和应用程序。 CAB 还能够添加注册表项并定义比 zip 更加不同的目标位置(我希望 x.dll 在 \Windows 中,但 prog.exe 在我的程序文件夹中 - 尝试使用 ZIP)。
要记住的一件事是 wceload(CAB 提取器)默认使用 UI,因此您需要使用 /noui 开关之类的东西。
如果您是真正的无头设备,这可能不是问题(很长一段时间没有这样做),但相当常见的“无头”配置具有显示支持,并且显示器根本没有连接,或者类似于 NOP VGAFLAT 驱动程序。 这允许您运行 shell 并访问所有漂亮的 shell API,但增加了 GWES 将对话框渲染到不存在的显示器上的挑战。
OpenNETCF 还有一个 CAB 安装程序 SDK,您可以通过创建自己的安装程序应用程序来完全删除任何 UI。 这可能有用也可能没用,具体取决于安装的方式和时间(例如通过 HKLM\Init 或 otehr)。
I'd stick with CAB as a package since even headless devices can use the CAB extraction tool. If you ZIP it, then you have to add a ZIP support library and app. CAB also has the ability to add registry entries and define far more disparate target locations than a zip (I want x.dll in \Windows but prog.exe in my program folder - try that with a ZIP).
One thing to keep in mind is that wceload (the CAB extractor) uses a UI by default, so you're going to want to use things like the /noui switch for it.
If you're true headless this may not be an issue (not done that in a long while) but a fairly common "headless" configuration has display support and either the display simply isn't hooked up or is something like a NOP VGAFLAT driver. This allows you to run a shell and have access to all the nice shell APIs, but adds to the challenge that GWES will render dialogs onto the non-existent display.
OpenNETCF also has a CAB Installer SDK that you can use to completely remove any UI with by creating your own installer app. This may or may not be useful depending on the how and when the install happens (through HKLM\Init or otehr for example).