0

我们的客户支持向我们提出了一个奇怪的问题。每天都有一些设备没有启动我们的应用程序,因为在应用程序启动阶段发生错误。

在进一步调查该问题时,我发现了以下帖子。不幸的是,它不适用于我的问题。

Windows CE 在重置时删除 .NET CF

热启动后 GAC 仍然存在,因此问题不是来自那个角落。

在深入研究时,我们发现问题是由损坏的 log4net.dll 引起的。就在问题出现之前,正在运行软件更新。那里发生的事情基本上是:

- 下载新版本
- 重新启动设备(热启动)
- 供应商特定的 CAB 安装程序安装 CAB
- 设备再次重新启动
- 系统备份正在运行
- 另一个热启动
- 我们自己的应用程序已启动

在最后一步,应用程序因找不到 log4net 程序集或无效(类似的东西)错误而崩溃。在将程序集的工作版本与设备上的版本进行比较后,我们发现在软件更新过程中的某个地方,log4net 程序集已损坏。奇怪的是,在程序集开始时有一部分不同的配置 XML。
对我来说,它看起来很像缓冲区或偏移量。以前有人见过这样的行为吗?目前我们只能在两台设备中的一台上看到它。不幸的是,我们的第二个设备遇到了一些其他问题,因此它们的传播范围不如第一个发生错误的设备那么广泛。因此,我们不能说它是否仅限于一种设备类型。

对这个有什么建议吗?

4

0 回答 0