Я использую NAnt 0.90 в Windows 7 Professional.
Я пытаюсь создать CAB-файл, используя NAnt.NAnt использует задачу выполнения, чтобы CabWiz собрал CAB-файл с помощью файла inf.Сборка завершается неудачно, но если я использую CabWiz из командной строки вместо NAnt, я могу создать 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>
Файл cab_build_errors.err, сгенерированный CabWiz, содержит 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 передавал полный путь без явного указания полного пути в скрипте сборки?Что-то, что будет иметь каталог с файлом сборки, будет работать.