1
我在Windows 7 Professional上使用NAnt 0.90。NAnt exec任務與cabwiz.exe失敗
我想用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
UPDATE:
我可以使用下面的命令再現從該命令行錯誤:
"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傳遞完整路徑而沒有在構建腳本中明確地擁有完整路徑?一些只需要構建文件的目錄就可以工作。