2017-03-13 8 views
0

NSIS 설치 프로그램을 빌드하는 PowerShell 스크립트가 있습니다. 시스템에서 직접 실행하면 효과적입니다. Jenkins 파이프 라인에 추가하면 다음 오류가 발생합니다.NSIS Jenkins에서 실행할 때 오류 발생

Internal compiler error #12345 

2GB 크기 제한에 대해 알고 있습니다. 질식하는 파일은 52MB뿐입니다 ... 스크립트는 Jenkins 외부에서 실행됩니다.

Jenkins 작업 영역 전체 또는 일부를 삭제하는 중 일부를 추가하려고 시도했습니다. 작업 영역이없는 경우 설치 프로그램이 컴파일되는 경우가 있습니다.

누구든지 아이디어가 있습니까? 나는 좀 곤란하다.

편집 : 그것이 복사 - 붙여 넣기 오류를했다 밝혀,

Section /o "${PRODUCT_IBMI}" SECSoftware 
    SectionIn 1 
    SetOutPath "$TEMP\${PRODUCT_BUNDLE_PATH}$uniquePath" 
    SetDetailsView hide 
    ; The following lines modify the text display in the progress banner 
    GetDlgItem $R0 $HWNDPARENT 1037 
    SendMessage $R0 ${WM_SETTEXT} 0 "${PROGRESS_BANNER_BOLD_TEXT}" 
    GetDlgItem $R0 $HWNDPARENT 1038 
    SendMessage $R0 ${WM_SETTEXT} 0 "${PROGRESS_BANNER_TEXT}" 

    File "deliverables\${PRODUCT_FILE}" 
+0

NSIS 버전? 최소 코드 샘플? – Anders

+0

NSIS 2.50 ... 내일 최소 코드 샘플 게시시 작업하겠습니다. –

답변

0

문제 :

여기
Write-Output "Compiling installer" 
$relmod = $deployXML.'deploy-bundler'.relmod 
$cmd = '& ${env:ProgramFiles(x86)}\NSIS\makensis .\deploy-bundler\install\win32\installer-pieces\bundle.nsi -DRELMOD=$relmod' 
invoke-expression $cmd 

는 NSIS의 다음은 PowerShell을 호출하고 날려 소스의 라인입니다 . 젠킨스 (Jenkins) 설정에서 나는 withEnv 클로저를 사용했다. 이 클로저에서는 TMP를 D : 드라이브로 지정했습니다. D : 드라이브가 시스템에 존재하지 않으며 NSIS가 임시 파일을 만들기 위해 파일 시스템으로 가야 할 때 공간이 없으므로 오류가 발생합니다.

NSIS 내부 컴파일러 오류 # 12345를 검색하는 사람은 여기에 해당하는 디스크 공간이 부족할 수 있습니다.

+0

디스크 문제는 "내부 컴파일러 오류 # 12345 : mmap 크기 생성 중 ..."에 적용됩니다. 다른 mmap 오류는 메모리 기반 일 수 있습니다. – Anders