2

在为我们的产品构建 windows mobile cab 时,windows CE CAB 向导 (CabWiz.exe) 有时会返回错误:

错误:文件 c:\docume~1\build\locals~1\temp\wiz3340.inf 包含不受支持的 DirID

当使用超过 998 个文件、~260 个目录或未转义 % 符号(使用另一个 %)时,可能会发生此错误,但这些不适用于我们的案例。

有没有人遇到过这个问题?谢谢!

4

1 回答 1

2

我今天遇到了这个问题,并为我找到了一个在这里工作的解决方案:

https://web.archive.org/web/20100330064330/http://blogs.msdn.com/raffael/archive/2008/03/18/x-inf-contains-dirids-which-are-not-supported。 aspx

所以我想:好的,他达到了可以打包在 CAB 中的 998 个文件的已知限制......错误:当使用更少的文件时也发生了问题,比如 300...... Program Files\Microsoft Visual Studio 9.0\SmartDevices\SDK\SDKTools\CabWiz.exe,版本 4.0.4332.0。

运行一些测试后,我达到了一个神奇的数字:262。使用 262 个文件 VS2008 可以成功创建智能设备 CAB,使用 263 个文件它给出错误“x.inf 包含不支持的 DirID”。此时我注意到,在 VS2008 创建并提供给 CabWiz.exe 的 .INF 文件中,它在 [DestinationDirs] 下为每个添加的文件编写了一个条目,即使设备上的目标文件夹与它在我的情况。通过手动编辑 INF(使用一些自动创建行的应用程序......),我可以成功地为 263+ 个文件创建 CAB,在 [DestinationDirs] 下仅指定一个条目。所以,我不知道的另一个限制是:VS2008 的 CabWiz 可以在 [DestinationDirs] 下解析多达 262 个不同的条目。

现在:Windows Mobile 6 SDK 附带了较新版本的 CabWiz.exe,v4.5.5102.0,而且非常有趣的是,它不仅克服了 998 个文件的限制,而且还克服了 [DestinationDirs] 下大约 262 个条目的限制。因此,在这种情况下,“简单”的解决方案是下载 2 个 Windows Mobile 6 SDK 之一并使用该 CabWiz.exe (C:\Program Files\Windows Mobile 6 SDK\Tools\CabWiz)。

于 2009-08-19T12:01:17.817 回答