Windows 7 Professional で NAnt 0.90 を使用しています。
NAnt を使用して CAB ファイルを作成しようとしています。NAnt は実行タスクを使用して、CabWiz に inf ファイルを使用して CAB ファイルを構築させます。ビルドは失敗しますが、NAnt の代わりにコマンド ラインから CabWiz を使用すると、CAB ファイルをビルドできます。
私のNAntビルドファイルの関連部分は次のとおりです。
<target name="build Cab Production">
<exec program="C:\Program Files (x86)\Microsoft Visual Studio 9.0\SmartDevices\SDK\SDKTools\cabwiz.exe" commandline="ACSreader2\ACSreader2Setup\Production\ACSreader2_Setup.inf /err cab_build_errors.err"/>
</target>
CabWiz によって生成された cab_build_errors.err ファイルには、2 つの警告と非常に一般的なエラー メッセージが含まれています。
Warning: Section [RegKeys] has no data
Warning: Section [DefaultInstall] key "AddReg" - there are no section entries to process
Error: CAB file "ACSreader2\ACSreader2Setup\Production\ACSreader2_Setup.CAB" could not be created
コマンド ラインから CAB をビルドすると、同じ 2 つの警告が表示されますが、エラーは発生しません。コマンドラインからビルドするために使用するものは次のとおりです。
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\SmartDevices\SDK\SDKTools\cabwiz.exe" "C:\programming\ACSreader2\ACSreader2\ACSreader2Setup\Production\ACSreader2_Setup.inf" /err cab_build_errors.err
アップデート:
次のコマンドを使用して、コマンドラインからエラーを再現できました。
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\SmartDevices\SDK\SDKTools\cabwiz.exe" "ACSreader2\ACSreader2Setup\Production\ACSreader2_Setup.inf" /err cab_build_errors.err
違いは、inf ファイルへのフル パスを指定していないことです。ビルド スクリプトに明示的にフル パスを指定せずに、NAnt にフル パスを渡すために使用できる変数または何かがありますか? ビルドファイルのディレクトリだけを持つものは機能します。