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を使用しているときにも発生しました...私はまだC:\について話しているプログラム Files\Microsoft Visual Studio 9.0\SmartDevices\SDK\SDKTools\CabWiz.exe、バージョン 4.0.4332.0。

いくつかのテストを実行した後、マジック ナンバー 262 に達しました。VS2008 は 262 個のファイルでスマート デバイス CAB を正常に作成できましたが、263 個のファイルで "x.inf にはサポートされていない DirID が含まれています" というエラーが発生しました。この時点で、VS2008 が作成して CabWiz.exe に与える .INF ファイルで、デバイス上のターゲット フォルダーが同じであっても、追加されたファイルごとに [DestinationDirs] の下にエントリが書き込まれていることに気付きました。私の場合。INF を手動で編集することにより (行作成を自動化するいくつかのアプリケーションを使用して...)、[DestinationDirs] の下に 1 つのエントリのみを指定して、263 以上のファイルの CAB を正常に作成できました。したがって、私が認識していなかった別の制限は次のとおりです。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 に答える