【问题标题】:Windows CE 6.0 - Installing SQL Server CE 3.5 into the run-time imageWindows CE 6.0 - 将 SQL Server CE 3.5 安装到运行时映像中
【发布时间】:2012-04-20 04:35:17
【问题描述】:

我做了一个应用程序,放在 Win CE(CF 卡)的硬盘上。我的问题是应用程序使用的是 SQL Server CE 3.5 数据库,但看起来图像是使用 SQL Server CE 3.0 创建的。开始构建镜像时无法选择 3.5 版本。

每次调试应用程序时都会部署 3.5 版本的 dll,因此问题永远不会出现在开发阶段。

现在当应用程序启动时(它在操作系统启动时自动启动)会弹出带有异常的消息窗口,并且不要让应用程序启动。我的问题是如何将 SQL Server CE 3.5 安装到映像中,或者如何在以后或每次启动时使用 CAB 文件安装它。

当我在正在运行的操作系统系统上运行正确的 CAB 文件(三个 CAB)时,它会安装 3.5 版本并且我的应用程序会启动,但是当我再次重新启动操作系统时,更改不会保存并提交。必须有一个解决方案,在构建映像之前在目录中添加 3.5 版本,或者在每次启动时安装它,或者在第一次启动后永久安装一次的最后一个选项。

如果您可以为我提供每次系统启动时安装 CAB 的解决方案,这对我有用,但考虑到我必须在系统启动时运行将使用 SQL Server CE 3.5 数据库的应用程序因此,CAB 的安装必须在应用程序自动启动之前。

提前致谢。

【问题讨论】:

    标签: installation sql-server-ce windows-ce platform-builder


    【解决方案1】:

    您有几个选择。最不可取的是在启动时运行 CAB。

    如果可以的话,一种选择是将最新的 SQLCE 二进制文件放入操作系统。这可在目录中找到,前提是您安装了所有更新的 QFE。如果由于某种原因无法安装 QFE,您可以随时替换 Platfrom Builder 从%WINCEROOT%\OTHERS\SQLCOMPACT 提取的源二进制文件。

    另一种选择是在您的应用程序部署中仅包含所有 SQLCE 二进制文件。您不需要 CAB,只需将 DLL 放在您的应用程序文件夹中(如果您走这条路线以防止本机 DLL 冲突,则从操作系统中删除 SQLCE 是一个好主意)。这些二进制文件的来源是%PROGRAM_FILES%\Microsoft SQL Server Compact Edition\v3.5\Devices。这实际上是我更喜欢的路线,因为 SQLCE 的更新不需要新的操作系统。

    【讨论】:

    • 我同意您将二进制文件放入应用程序部署的最佳解决方案。我会尝试,但查看 OTHERS\SQLCOMPACT 我找到了正确的二进制文件,但在我开发的图像中,有一个 SQLCE 版本 3.0。当我在正在运行的 WinCE 映像上安装 CAB 时,应用程序可以工作,但重新启动后一切都丢失了。我会尝试你的解决方案,所以我们会看到。最后,我将把对我有用的解决方案放在这里。谢谢。
    • @Patrik 你的最终解决方案是什么?
    • 我通过两种方式解决了我的问题。 1. 在启用了持久存储和注册表保存功能的映像上运行 CAB。我做了几份CF卡。 2. 解决方案是将 SQLCE 的 DLL 与无论如何保存在持久存储中的可执行文件放在一起。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 2017-04-15
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多