2016-05-02 22 views
0

は、だから私は、次のコマンドを使用して、私のインストーラを実行してサイレントモードで実行する場合: Inno Setupのクラッシュが頻繁に

C:\Program Files (x86)\Example\ExampleSetup.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART 

しかし、いくつかの奇妙な理由でインストーラが失敗する可能性は50%であり、それが失敗しないときに返す

0-3からのランダムな終了コード。
/VERYSILENTが原因である可能性があると思います。なぜなら、この動作を静かに実行していないからです。
[Setup]セクションに SetupMutexも使用しています。そのため、時間の半分がクラッシュするケースがありますか?
プロセスがクラッシュして問題をデバッグできる場合は、意味のある終了コードも取得したいと考えています。
これは、ログ出力されます:

2016-05-02 11:33:01.421 Log opened. (Time zone: UTC+03:00) 
2016-05-02 11:33:01.421 Setup version: Inno Setup version 5.5.6 (u) 
2016-05-02 11:33:01.421 Original Setup EXE: C:\Program Files (x86)\Maprinter\MaprinterSetup.exe 
2016-05-02 11:33:01.421 Setup command line: /SL5="$F403AE,242855,184832,C:\Program Files (x86)\Maprinter\MaprinterSetup.exe" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART "/LOG=C:\Program Files (x86)\Maprinter\MaprinterSetup.log" Restart 
2016-05-02 11:33:01.421 Windows version: 10.0.10586 (NT platform: Yes) 
2016-05-02 11:33:01.421 64-bit Windows: Yes 
2016-05-02 11:33:01.421 Processor architecture: x64 
2016-05-02 11:33:01.421 User privileges: Administrative 
2016-05-02 11:33:01.422 64-bit install mode: No 
2016-05-02 11:33:01.425 Created temporary directory: C:\WINDOWS\TEMP\is-SM12R.tmp 
2016-05-02 11:33:01.494 Extracting temporary file: C:\WINDOWS\TEMP\is-SM12R.tmp\InnoCallback.dll 
2016-05-02 11:33:01.593 Extracting temporary file: C:\WINDOWS\TEMP\is-SM12R.tmp\unzipper.dll 
2016-05-02 11:33:01.723 Exception message: 
2016-05-02 11:33:01.723 Defaulting to OK for suppressed message box (OK): 
          Error reading WelcomeLabel2.Caption: System Error. Code: 1411. 
          Class does not exist. 
2016-05-02 11:33:01.723 Deinitializing Setup. 
2016-05-02 11:33:01.728 Log closed. 

これは、同じ問題に異なるログ出力されます:

2016-05-02 12:04:50.495 Log opened. (Time zone: UTC+03:00) 
2016-05-02 12:04:50.495 Setup version: Inno Setup version 5.5.6 (u) 
2016-05-02 12:04:50.495 Original Setup EXE: C:\Program Files (x86)\Maprinter\MaprinterSetup.exe 
2016-05-02 12:04:50.495 Setup command line: /SL5="$177016C,242855,184832,C:\Program Files (x86)\Maprinter\MaprinterSetup.exe" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /LOG=C:\Users\yuvadius\Desktop\MaprinterSetup.log Restart 
2016-05-02 12:04:50.495 Windows version: 10.0.10586 (NT platform: Yes) 
2016-05-02 12:04:50.495 64-bit Windows: Yes 
2016-05-02 12:04:50.495 Processor architecture: x64 
2016-05-02 12:04:50.495 User privileges: Administrative 
2016-05-02 12:04:50.496 64-bit install mode: No 
2016-05-02 12:04:50.500 Created temporary directory: C:\WINDOWS\TEMP\is-NFR0Q.tmp 
2016-05-02 12:04:50.528 Extracting temporary file: C:\WINDOWS\TEMP\is-NFR0Q.tmp\InnoCallback.dll 
2016-05-02 12:04:50.607 Extracting temporary file: C:\WINDOWS\TEMP\is-NFR0Q.tmp\unzipper.dll 
2016-05-02 12:04:50.763 Exception message: 
2016-05-02 12:04:50.763 Defaulting to OK for suppressed message box (OK): 
          System Error. Code: 8. 
          Not enough storage is available to process this command. 
2016-05-02 12:04:50.763 Deinitializing Setup. 
2016-05-02 12:04:50.770 Log closed. 

だから私の具体的な質問です:なぜ私のインストーラが頻繁にクラッシュすると、これを解決するために私は何ができますか?

+0

どの段階でクラッシュしますか?私たちにログファイルと完全なスクリプトを見せてください。 –

+0

インストーラはログファイルを作成しません。 – yuval

+0

これは私の完全なスクリプトです。http://textuploader.com/5yi0l – yuval

答えて

0

「タイマー」を一時的に削除することから始めます。

クイックサイレントインストールが完了するとすぐにタイマーが切れるため、mytimerprocは、もはや存在しないウィンドウにアクセスしようとしているか、またはパスカルスクリプトが破壊されています。

こうである(そして実際にもない場合)が判明した場合、あなたはこれらの問題を修正する必要があります。インストーラは(CurStepChanged(ssDone)から多分)閉じているとき

  • をあなたはタイマーを破壊する必要が
  • 透明にするためのフォームがないので、非常にサイレントなインストールでタイマーをスケジュールすることさえしたくないかもしれません。
  • InitializeSetupではなく、InitializeWizardにタイマーをスケジューリングする必要があります。これは、タイマーが切れたときや、インストーラーの起動が遅い場合でも、ウィンドウがまだ存在しないようにするためです。
+0

私はまだ同じ問題を抱えていますが、私は間違いなくあなたの提案を実装します。 – yuval

+0

OK、クラッシュが発生した時刻を知るためにログを確認する必要があります。一般的には、クラッシュを引き起こす原因を見つけるためにコードを1つずつ削除することから始めてください。あるいは、デバッグを助けるために、あなたのあらゆる機能にいくつかのロギング(['' Log' function(http://www.jrsoftware.org/ishelp/index.php?topic=isxfunc_log))を追加してください。 –

関連する問題