2012-04-10 18 views
0

別のインストーラを起動するインストーラをビルドしました(コミットフェーズで) (setup.exeと.msiファイルは私自身、開発システムに別のインストーラでインストーラを起動すると、プログラムはインストールされたプログラムリストに表示されません

「)BoardsControllerSetup」ディレクトリに配置された(()プロW7は、すべてのダンディ

テストは別のW7マシン上で、基本的な権限を持つユーザーとしてログインして実行している私はかなり確信して権限をよ)、2番目のアプリケーションはインストールされたプログラムのリストに表示されません(それはデスクトップ上にアイコンを作成するかどうかは関係ありません)。

(後で最初のアプリケーションから2番目のアプリケーションを起動する必要があります。そのため、レジストリからインストールパスを取得できます。 インストール時に常にレジストリ文字列を作成できます私は実際にこれを直接修正する方法に興味があります)。

ありがとうございました。

ショーン

 System.Diagnostics.Process cBoardsControllerSetupProcess = new System.Diagnostics.Process(); 
     startInfo = new System.Diagnostics.ProcessStartInfo(); 
     startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
     startInfo.WorkingDirectory = Path.Combine(sInstallDir, "BoardsControllerSetup"); 
     startInfo.FileName = "setup.exe"; 
     cBoardsControllerSetupProcess.StartInfo = startInfo; 
     cBoardsControllerSetupProcess.Start(); 
+0

ユーザー権限の問題があるかどうかを判断したら元に戻ってください。私たちは不完全な質問に答えることはできません。 –

+0

クールな質問です。 MSIロギングを有効にして、アプリケーションの終了コードを確認し、権限のために特別なスイッチを使用しましたか? –

答えて

0

Windowsインストーラが同時に実行されている2つのMSIベースのインストールをサポートしていません。メインインストールが現在実行中であるため、2番目のインストーラが失敗する可能性が最も高いです。それが1台のマシンで動作したという事実はタイミングの偶然だった。

InstallExecuteSequenceから別のMSIベースインストールを実行する唯一の(非推奨)方法は、InstallFinalizeの後にmsidbCustomActionTypeAsync and msidbCustomActionTypeContinueフラグを設定してスケジュールすることです。これにより、メインインストールが完了した後に実行されます。

既存のパッケージをインストールする場合の推奨アプローチは、前提条件として追加することです。一部の商用セットアップツールは、MSIによって制御される機能ベースの前提条件をサポートしますが、ほとんどのセットアップツールでは、EXEブートストラップによって処理される前提条件のみが許可されます。

+0

詳細返信担当者ありがとうございます。 – Oyiwai

+0

小規模なアップデート:バッチファイルを使用してすべての必要なインストールを1つずつ実行するようになりました。これは別の簡単で難解なソリューションです。 – Oyiwai

関連する問題