【问题标题】:Where should I put the cab file needed to show Compact Framework error messages?我应该将显示 Compact Framework 错误消息所需的 cab 文件放在哪里?
【发布时间】:2013-03-11 13:48:23
【问题描述】:

我收到了这个错误消息:

异常:此异常有一条错误消息可用,但无法显示,因为这些消息是可选的,并且当前未安装在此设备上。 请为 Windows Mobile 5.0 及更高版本安装“NETCFv35.Messages.EN.wm.cab”或为其他平台安装“NETCFv35.messages.EN.cab”。重新启动应用程序以查看消息。

我徒劳地在我的 HD 中搜索了那个文件,把它拼了起来(砰的一声?),然后在这里找到了它:

http://www.codeplex.com/Download?ProjectName=beyondpod&DownloadId=29539

但是我需要在我的设备上的哪个位置安装它才能找到它?在根目录上,还是在应用程序所在的文件夹中?我是直接复制过来,还是有其他的问题?

更新

这:http://msdn.microsoft.com/en-us/library/bb986876.aspx 表示“默认位置是 C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\Diagnostics。”但我的设备没有这样的路径。我能找到的最接近的是:

Computer\DuckbilledPlatypus's Device 2\\\Windows\SQLCE 2.0

-和:

Computer\DuckbilledPlatypus's Device 2\\\Windows\NETCFKeys

更新 2

我将出租车(也许我应该称它为死亡出租车,尽管我不会称自己为可爱)复制到设备的“根”到应用所在的文件夹中,但我仍然收到关于无法显示错误消息的相同错误消息。 IOW:救命!

更新 3

即使在此处尝试修复后:http://blogs.msdn.com/b/martijnh/archive/2008/01/03/fixing-exception-messages-on-the-net-compact-framework-3-5.aspx(更改死亡驾驶室内文件之一的名称)我得到相同的旧 long-donkey err msg,它可能比被抑制的要长得多。

更新 4

仔细阅读http://blogs.msdn.com/b/martijnh/archive/2008/01/03/fixing-exception-messages-on-the-net-compact-framework-3-5.aspx 的修复程序,我看到有人说他们必须添加 System.SR.dll 作为项目参考。当我尝试这样做时,我得到,“无法添加对 '\System.SR.dll' 的引用。这不是 .NET 程序集。

啊啊啊啊啊啊啊!!!!!!!!!!!!

更新 5

通过“运行它”,我假设 ctacke 是指双击它(cab 文件)。这样做会调出 cab 中包含的文件:_setup.xml 以及四个非常时髦的命名文件。 2-clicking _setup.xml 调用了一个关于潜在有害 (xml) 文件的警告消息,但我大胆地继续前进(嘿,它不是 我的 计算机)。它似乎做了一些事情(虽然没有确认消息)。单击 2 次 _setup.xml 时打开的 XML 表明其中一个名称很时髦的文件将重命名为 System.SR.dll(手动执行此操作的人一定经历过一些失败事件)。再次尝试添加 System.SR.dll 作为对我的项目的引用似乎有效(至少没有错误消息;并且 System.SR.dll 比重命名的时髦命名文件小得多)。但是,当我运行我的应用程序时,我仍然会得到同样的爸爸抨击的非错误消息!如果另一边也有火,那么跳过那个箍有什么用?

不过,我确实注意到,非错误消息在其标题栏上标有:System.InvalidOperatio...”我不记得以前在那里看到过;也就是说,我没有注意它。不过,没有看到消息的其余部分,我仍然处于不透明的缩影中。

更新 6

啊哈!终于让它工作了:我不仅必须将它添加为我的项目的参考(实际上,也许这不是必需的),我还必须将新的更薄版本(91KB 与 338 相比)复制到手持设备上,两者在“根”和应用程序所在的文件夹中。我不知道这两者中哪一个是必要的,也并不在乎。

【问题讨论】:

  • 您不只是复制 CAB,而是复制并运行它,这样它将在设备上安装资源 DLL。
  • 在更新 5 中已回答上述问题。
  • 嗯,您在设备上运行 cab 文件,而不是 PC。不需要参考,安装后CLR会找到。
  • PC 与 Windows 资源管理器中的手持设备建立了连接,这使我可以从 PC 影响手持设备。 IOW,我确实在手持设备上以一种虚拟的方式进行了操作,只是我在 Windows 7 中使用了资源管理器。无论如何,一旦我获得 System.SR.dll,它就可以工作了复制到需要的位置。
  • 这就是问题所在。您必须在目标上执行 CAB,就像执行应用程序一样。它会导致安装的 cab 扩展并安装正确的文件。如果它最终显示内容,那么它是在桌面上执行的,这不是你想要的。你现在拥有的东西会起作用,但它很脆弱,不容易在开发人员之间重复。

标签: windows-mobile compact-framework windows-ce cab


【解决方案1】:
  1. Clay 应该有这个,但为了完整起见,请在您的开发人员计算机上安装 Windows Mobile 6 SDK6.5
  2. 在您的计算机上转到 C:\Program Files (x86)\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\Diagnostics(即您安装 SDK 的位置)(删除 (x86) 仅适用于 32 位机器)
  3. 将 NETCFv35.Messages.EN.cab 复制到您的掌上电脑
  4. 在手持设备上单击 CAB,然后进行安装。

【讨论】:

  • 谢谢,但由于它可以正常工作(只需通过 Windows 资源管理器将 System.SR.dll 复制到掌上电脑),我就不用管它了。这个项目的整个“框架”已经摇摇欲坠——我必须使用 .NET 1.1,我必须从 Windows XP 虚拟模式进行开发,等等。我在 XP 模式上没有程序文件 (x86),我不会像我必须做的那样“弄乱东西”——这就像把积木放在玩具塔顶上——任何错误的动作都会让整个事情崩溃。
【解决方案2】:

终于让它工作了:我不仅必须将它添加为我的项目的参考(实际上,也许这不是必需的),我还必须将新的更薄的版本(91KB 与 338 相比)复制到手持设备上设备,位于“根”和应用程序所在的文件夹中。我不知道这两者中哪一个是必要的,也并不在乎。

真是麻烦!那种繁文缛节让我觉得自己像洛杉矶的罗德尼·金。

【讨论】:

  • 简单问题的所有长文本。 msgbox 清楚地说明了要安装的文件。您的代码在设备上运行并且需要一个 msg DLL。 VS 说明要安装的 cab 的名称。每个获胜的移动开发人员都应该知道,必须将出租车复制到设备上,然后使用移动文件浏览器进行点击。要在您的 PC 上找到正确的 cab 文件,您只需要在 PC 上的 ProgramFiles 目录下搜索它,然后用您的大脑选择 Compaft Framework 之一。这个问题及其更新让初学者和专家感到困惑。
  • 如果每个开发人员都知道他们应该知道什么,那么 Stack Overflow 就没有用处了。此外,我不认为自己是 Win Mobile 开发者。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-18
  • 2017-02-13
  • 2013-09-22
  • 1970-01-01
  • 2010-12-01
  • 2018-09-28
  • 2019-10-04
相关资源
最近更新 更多