2013-08-28 14 views
5

WiX 3.6で作成されたMSIは、明らかにさまざまなものをインストールし、実際には実行されないEXEへのショートカットを作成します私のMSIによってインストールされています(exeは特定のフォルダにあります。これは、別のMSIによってインストールされているため、私のMSIに必要な前提です)。私たちが作成するショートカットは、インストールしたばかりのものを実際にexeに伝えるいくつかの引数を渡します。これはうまくいきますが、MSIがショートカットで使用するのと同じ引数でexeを自動的に実行するようにしたいと考えています。Wix - 現在のMSIでインストールされていなかったインストールの最後にexe(引数付き)を実行

この記事では、http://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/run_program_after_install.htmlを試してみましたが、インストールしたばかりのexeを実行したいと仮定し、exe引数を使用していないようです。

私はまた、のようなカスタムアクションを使用してみました -

<CustomAction Id="RunMainApp" 
      Directory="FREDFOLDER" 
      ExeCommand="[FREDFOLDER]Fred.exe -SBDSingleApp -SBDSplash=&quot;MySplash.bmp&quot;" 
      Execute="commit" 
      Return="ignore"/> 

<InstallExecuteSequence> 
    <Custom Action="RunMainApp" Before="InstallFinalize" /> 
</InstallExecuteSequence> 

これは、より有望だった - それは、exeファイルを実行しましたが、実際のインストールが終わった前に、そのようにした - 明らかに間違っていました。

正直言って、最初の例のようにUIを持っていれば、私は気にならないでしょう。MSIがウィザードなしでクワイエットモードで実行される時間の90%が表示されたからです。

+0

ここで私の答えを確認してください: http://stackoverflow.com/a/19274431/1766402 – Isaiah4110

答えて

2

Execute = "commit"をExecute = "deferred"に変更しようとしましたか?これは、インストールスクリプトの実行後にカスタムアクションを実行しますが、インストールプロセスが完了した後では実行しません。インストールの実行コンテキストの

+1

私が「コミット」を使用した理由は、私がガイドとして使用しているテキストブックが「設定コミットするために実行し、インサレーションが完了した後に実行されるアクションをスケジュールする」 - 私が必要とするようなサウンド。しかし、私があなたが提案したことを試したところ、何の違いもありませんでした。インストールウィザードが完了する前に、まだexeを実行しています。インストールがプログラムを実際に動作させるのに十分なのかもしれませんが、インストーラウィザードが実行されている間にLogonボックス(アプリケーションが最初に行うこと)を持っているだけで間違っていると感じます。 –

関連する問題