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传递完整路径而没有在构建脚本中明确地拥有完整路径?一些只需要构建文件的目录就可以工作。