多数のファイルを含むWindows Mobile用のCABを作成する

最近、CAB生成で予期しない問題に直面しました。 CabWiz.exeは生成に使用されます。 パッカーは、「setup.infにはサポートされていないDirIDが含まれています」というディレクトリ名の間違った文字を誓い始めました。



Windows Mobile用のプロジェクトはコンパイルされ、CABにパッケージ化されました。 午前中、テストパッケージが予定されていたときに、すべてが突然鳴りました。 日中はアセンブリプロジェクトに変更はありませんでした。 夕方、CABは集まらなかった。 それでも、パーセント記号付きの変数がどこかで誤って処理されたか、DestinationDirsの.infセクションに誤ったパスが挿入されたと考え始めました。



解析後、Visual Studio 2008に付属のバージョンにはいくつかの制限があることがわかりました。 これらの制限の1つ:処理されるファイルの最大数は262です。つまり、 アーカイブに262個のファイルが含まれている場合、すべてが正常であり、出力は正しいCABになります。 プロジェクトに263以上のファイルが表示される場合、上記のエラーが発行されます。



ソリューションは非常にシンプルであることが判明しました。 WM 6 SDKには正しいcabwiz.exeがあり、この問題は修正されています。

1)合計でc:\ Program Files \ Windows Mobile 6 SDK \ Tools \ CabWiz \ Cabwiz.exeを使用するようになりました

2)c:\ Program Files \ Microsoft Visual Studio 9.0 \ SmartDevices \ SDK \ SDKTools \ CabWiz.exeをsdkの新しいものに置き換えて(さらにCabWiz.ddfファイルを置き換えて)、スタジオから直接CABを安全に収集し続けることができます。



ところで、CABに変数(マクロ変数)を使用することを忘れないでください。

http://www.christec.co.nz/blog/archives/262



All Articles