0

別のインストーラーを起動するインストーラーを作成しました(コミットフェーズ)(setup.exeファイルと.msiファイルは「BoardsControllerSetup」ディレクトリに配置されます)

私自身、開発システム(w7 Professionalを実行)、すべてがダンディです

基本的なアクセス許可を持つユーザーとしてログに記録された別の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();
4

1 に答える 1

0

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

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

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

于 2012-04-11T06:54:49.497 に答える