0

我在 windows mobile 6 中遇到了一个问题。我开发了一个应用程序,并且我使用了在 mscorlib.dll 程序集中的 System.Threading 命名空间中存在的 Timer 类。问题是,当我调试它或通过在我的设备(HTC ELF0300)上从 Visual Studio 2008 创建正确的 cab 文件来部署它时,它运行良好,但是当我们的客户将它部署在他的设备(HTC Tilt 2)上时,它给出了 TypeLoadException System.Threading.Timer.ring(),在谷歌搜索并查看我在项目中引用的每个程序集到 IL DASM 和 Visual Studio 的对象资源管理器之后,我已经看到添加到 cab 中的 mscorlib.dll System.Threading 命名空间缺少部署项目,并且我的主项目中的 mscorlib.dll 在对象资源管理器中向我显示 System.Threading 命名空间。

但是,如果 cab 文件中的 mscorlib.dll 中缺少命名空间,我仍然感到困惑,而不是 cab 文件如何在我的设备(HTC ELF0300)上部署和运行良好,但在 HTC Tilt2 上却没有?我该怎么做才能在我的 cab 文件中添加正确的 mscorlib.dll?

任何帮助将不胜感激。谢谢你。

祖奈尔·明哈斯。 http://www.tkxel.com/

4

1 回答 1

1

您的客户是否在其设备上安装了正确版本的 .NET Compact Framework?

您不必在 CAB 文件中包含 mscorlib.dll,因为它是 .NET Compact Framework 的一部分,如果用户正确安装了它,就会在用户的设备上找到它。

询问您的客户是否可以在他的设备上打开文件资源管理器并查看他是否可以看到文件夹cgautil.exe中的\Windows文件。

如果他能看到,请他打开它并检查他在屏幕上看到的版本号(2.0.xxxx 或 3.5.xxxx)。这将是他安装的 .NET CF 版本。

如果他看不到cgautil.exe,他将没有安装 .NET CF,并且需要在运行您的应用程序之前安装它。

于 2010-02-11T15:15:47.807 回答