Windows mobile 带有cabwiz.exe的NAnt exec任务失败

Windows mobile 带有cabwiz.exe的NAnt exec任务失败,windows-mobile,nant,cabwiz,Windows Mobile,Nant,Cabwiz,我正在Windows 7 Professional上使用NAnt 0.90 我正在尝试使用NAnt构建CAB文件。NAnt正在使用执行任务让CabWiz使用inf文件构建CAB文件。构建失败,但如果从命令行使用CabWiz而不是NAnt,则可以构建CAB文件 以下是我的NAnt构建文件的相关部分: <target name="build Cab Production"> <exec program="C:\Program Files (x86)\Microsof

我正在Windows 7 Professional上使用NAnt 0.90

我正在尝试使用NAnt构建CAB文件。NAnt正在使用执行任务让CabWiz使用inf文件构建CAB文件。构建失败,但如果从命令行使用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时,我得到了相同的两个警告,但没有错误。下面是我从命令行构建它的方法:

"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传递完整路径,而不必在构建脚本中显式地拥有完整路径?只有生成文件目录的东西可以工作。

我通过使用NAnt函数directory::get-current-directory()在NAnt构建脚本中指定inf文件的完整路径来实现它。最终结果是:

<target name="build Cab Production">
        <exec program="C:\Program Files (x86)\Microsoft Visual Studio 9.0\SmartDevices\SDK\SDKTools\cabwiz.exe" commandline="${directory::get-current-directory()}\ACSreader2\ACSreader2Setup\Production\ACSreader2_Setup.inf  /err cab_build_errors.err" />
</target>

我通过使用NAnt函数directory::get-current-directory()从NAnt构建脚本中指定inf文件的完整路径,使其正常工作。最终结果是:

<target name="build Cab Production">
        <exec program="C:\Program Files (x86)\Microsoft Visual Studio 9.0\SmartDevices\SDK\SDKTools\cabwiz.exe" commandline="${directory::get-current-directory()}\ACSreader2\ACSreader2Setup\Production\ACSreader2_Setup.inf  /err cab_build_errors.err" />
</target>