0

我最近继承了一个大型移动应用程序,我希望改进的一件事是它的安装/更新过程。目前,公司的政策是,每当发布新版本时,我们都会发布一个新的 CAB 文件,并将其手动复制到运行它的每个 PDA 上。这还包括手动复制 SQL Server Compact 和 Compact Framework 3.5 的 CAB 文件。

我正在用一个小的引导加载程序应用程序替换它,它将与我们的服务器检查应用程序中的更新等内容,但也会检查是否安装了紧凑框架和 SQL Server 紧凑型(如果没有,将从中获取 CAB 文件服务器并安装它们)。许多较新的 Windows Mobile 6.5 设备都安装了 Compact Framework 3.5,但不是全部。我希望这个引导加载程序几乎可以在任何设备上运行,因此考虑到这一点,在本机代码 (c++) 或 Compact Framework 1.0 中执行此操作会更可靠吗?是否有一些设备根本不附带 CF?

4

2 回答 2

1

如果您想安全起见,您应该编写一个原生 C (Win32 WIN_CE) 应用程序来检查更新。Windows CE 带有一个自动启动功能,它会自动在不同的目录中为不同的处理器类型查找名为 autorun.exe 的文件。例如:如果您有 ARM 设备,操作系统将查看 %Volume%\2577\autorun.exe(另请参见此处)。如果设备有 SH3 处理器,调用将是 %volume%\10005\AutoRun.exe。仅当您也计划支持非 ARM 处理器类型系统时才需要使用上述内容。

使用 autorun.exe 将使您能够自动设置或更新设备。您可以为不同的处理器共享相同的代码。AutoRun 使您能够编写“引导”安装和更新。

如果您面对的设备和操作系统版本更有限,您可能会限制支持的处理器类型(可能仅支持与 StrongARM 兼容的设备)。可能您还可以隐式假设设备上至少有 .NET Compact Framework 1.1 可用。

于 2013-06-23T06:00:15.760 回答
1

对于 Windows CE(现在的 Windows Embedded Compact),是否要包含 CompactFramework 完全取决于设备制造商。然而,对于 Windows Mobile 6,CF 2.0 SP2 预装了操作系统(所以我相信 6.5 也应该有它)。我相信您可以为它编写 .NET CF 2.0 代码并让它运行。

就本机代码而言,要记住的一件事是,如果您有不同的处理器架构,那么您就不能拥有相同的本机代码,例如 x86 和 ARM。但是,我再次认为 Windows Mobile 6 仅支持 ARM 处理器,所以我也不确定这是否会成为问题。

我想你可以使用任何一个。

于 2013-06-20T16:04:30.873 回答