我正在开发适用于 Framework 6 的 Windows Mobile 应用程序。我想添加功能来升级设备上当前运行的应用程序的补丁。
当 Windows Mobile 应用程序工作时,它应该异步检查服务器数据库中是否有任何可用的新版本。如果补丁存在,程序应下载 .cab(Windows Mobile 安装程序)文件并自动安装/运行。
主要是我对这些有疑问:
- 如何将 cab 文件下载到设备的特定文件夹。
- 如何以编程方式安装 cab 文件。 (以编程方式触发 cab 文件安装,无需用户干预)
如何做到这一点?
请帮我解决这个问题......
最佳答案
将文件下载到本地文件夹通常取决于您的存储库,即。如果您将其存储在文件共享或基于网络的文件共享中,您将需要稍微不同的代码。 您必须考虑通过某种 list 文件或数据库记录提供预下载版本检查的选项,以避免仅仅为了检查其版本而下载整个补丁。
一旦您对下载部分进行排序(同样,取决于存储),您可以通过调用 wceload.exe
从您的应用程序调用 CAB 安装:
Process proc = Process.Start("wceload.exe", "\"" + Path.Combine(applicationPath, updateFileName) + "\"");
proc.WaitForExit();
但是,这将需要用户进行交互并按“确定”以在旧版本之上安装新版本。
[编辑] 一些设备制造商(例如 Intermec)提供了在重新启动时自动安装 CAB 的方法,但这是特定于设备的,因此您必须仔细阅读。
关于c# - 从 C# 代码安装/执行 CAb 文件[Windows Mobile 应用程序文件]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8603564/