2017-03-13 17 views
0

NSISインストーラをビルドするPowerShellスクリプトがあります。システム上で直接実行するとうまくいきます。私はジェンキンスパイプラインに追加すると、私は次のエラーを取得する:NSIS Jenkinsから実行するとエラーが発生する

Internal compiler error #12345 

私はすべての2GBのサイズ制限について知っています。それが窒息しているファイルはわずか52MBです...スクリプトはJenkinsの外で大きく実行されます。

私はいくつかのスリープを追加しようとしましたが、Jenkinsワークスペースのすべてまたは一部を削除しました(ワークスペースがないとインストーラがコンパイルされることがあります)。

誰もが考えている?私はちょっと困っている。

編集:ここではPowerShellの呼び出しと爆破ソースの行です:

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です:

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

問題、結局のところとしては、コピー&ペーストのエラーでした。 Jenkinsの設定では、withEnvクロージャがありました。その閉鎖では、TMPをD:ドライブに向けています。 D:ドライブはシステム上に存在せず、一時ファイルを作成するためにNSISがファイルシステムに移動しなければならなかったとき、スペースがないため、エラーが発生しました。

NSIS内部コンパイルエラー#12345を検索している人にとっては、原因の1つはディスクスペースの不足である可能性があります。

+0

ディスクの問題は「内部コンパイラエラー#12345:mmapのサイズを作成中にエラーが発生しました...」に適用され、その他のmmapエラーはメモリに基づいている可能性があります。 – Anders

関連する問題