2011-03-18 2 views
1

Windows 7 Professional에서 NAnt 0.90을 사용하고 있습니다.cabwiz.exe로 NAnt exec 작업이 실패합니다.

NAnt를 사용하여 CAB 파일을 작성하려고합니다. NAnt는 실행 작업을 사용하여 CabWiz가 inf 파일을 사용하여 CAB 파일을 빌드하도록합니다. 빌드가 실패하지만 NAnt 대신 명령 줄에서 CabWiz를 사용하면 CAB 파일을 빌드 할 수 있습니다. 내가 구축

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 

:

<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 파일이 경고와 매우 일반적인 오류 메시지가 포함 : 여기

내은 NAnt 빌드 파일의 관련 부분입니다 커맨드 라인에서 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가 빌드 스크립트에서 명시 적으로 전체 경로를 지정하지 않고 전체 경로를 전달하도록하는 데 사용할 수있는 변수 또는 무언가가 있습니까? 빌드 파일의 디렉토리 만있는 것이 작동 할 것입니다.

답변

1

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> 
관련 문제