代码之家  ›  专栏  ›  技术社区  ›  Stack Overflow is garbage

Windows CE在重置时删除.NET CF

  •  7
  • Stack Overflow is garbage  · 技术社区  · 16 年前

    我正在为专有的Windows CE 4.2设备编写一个C#应用程序(我没有该设备的规格或其他信息。我可以访问文件系统,基本上就是这样) 我也无法得到原制造商的支持。

    现在,我可以很好地安装.NET Compact framework了,一切都可以运行一段时间。但每隔一段时间,当设备复位时,它就会 删除 框架,GAC,所有与之相关的东西。

    我知道,这不仅仅是一个硬重置,而是跳回出厂默认值,因为:

    1. 它会记住注册表设置(如果我再次尝试安装,它会说框架已经安装,并询问我是否要重新安装。因此很明显注册表项仍然存在)

    我知道没有太多的事情要做,但也许一些Windows CE专家能够告诉我为什么会发生这种情况,以及是否有合理的方法来避免这种情况。我对WindowsCE了解不多,所以据我所知,它可能是完美的标准行为。

    编辑: 重置后,在文件系统根目录中找到的GACLOG.TXT包含

    20:43:57.000 CGACUTIL:已初始化

    删除Microsoft.NET CF 3.5.GAC

    2008年8月12日20:43:57.000 cgautil:

    所以是的,它肯定是在删除GAC。为什么,以及如何阻止它?

    5 回复  |  直到 4 年前
        1
  •  13
  •   ctacke    16 年前

    您在这里看到的一些Windows CE和CF行为使您具有这种行为。不幸的是,没有真正好的解决办法,但我至少可以给你一些指导。

    1. CE注册表可以(也可能在您的设备上)存储在持久存储中。这可能在文件系统中(作为配置单元)或某些不可见的位置(OEM有两种不同的存储方式)。这是 重置时丢失。只有已保存且未刷新的项目才会丢失。
    2. 调用此函数(安装CF时也是如此)。一些原始设备制造商也选择在定期计时器上刷新。
    3. 当CF GACs不在图像中的项目时,文件将被删除 感动的 卸载组件时(我在几年前向CF团队抱怨了这一点,但没有结果)。

    1. 在解包CAB期间,CF文件被复制到永久存储区
    2. 应用程序运行
    3. CF文件被移动(而不是复制)到\Windows,这是不稳定的。

    黑客解决方案:使用本机应用程序“引导”启动应用程序。让它在运行时检查\Windows中的CF文件,如果没有,则从永久性存储中的某个位置安装CF CAB(将其标记为只读,以便wceload不会删除它)。

    另一个选项是将CF程序集与应用程序一起分发,而不是GAC。

        2
  •  1
  •   Felix    12 年前

    我知道这是一个非常古老的问题,但由于我有问题中提到的相同问题,我做了大量的研究以使其工作。我成功地做到了这一点,没有使用本机引导应用程序。

    1) 我曾经 MSCEInf

    2) 现在,首先安装cab,在同一SD卡或其他NAND存储上选择一个空文件夹(必要时创建一个)。

    3) 将先前从CF cab中提取的\Windows文件夹的内容复制到安装CF的同一文件夹中。如果提示覆盖任何文件,请始终选择“否”。

    4) 确保所有使用/需要CF的应用程序都位于同一文件夹中。您可以将属于应用程序的任何子文件夹原封不动地放在那里。

    希望这有帮助!

        3
  •  0
  •   Kosta    16 年前

    我认为您需要运行RegSave来保存安装后的注册表设置。我必须在一个旧的(pre.Net)版本的WindowsCE中这样做。

        4
  •  0
  •   Yahoo Serious    13 年前


    Start | Settings | Control Panel | Files Admin | Save session

    这(显然)仍然需要手动操作,所以这只是另一种解决方法。

    PS:我不知道这个手动保存有多通用(如果它也适用于其他设备或其他品牌或其他CE版本)。我也不知道是不是 清洁的 引导持久性。

        5
  •  0
  •   srina    10 年前

    我头脑风暴了几个小时,终于开始为基于WinCE 7的硬件设备配置和项目构建编写用户指南。将很快提供。非常感谢你成为我研究的一部分