2012-05-22 53 views
7

InstallShieldを使用してインストールした後、私のexeを実行したい。 InstallShieldはセットアップを正しく完了しますが、exeを実行しないでください。installshieldを使用してインストール後にソリューションを実行する

起動時にexeを追加する別の方法が見つかりましたが、再起動後に実行されます。 再起動せずに実行したいです。

可能ですか?

+1

これはasp.netとは関係がありますか? – Aristos

+1

何もありません。また、EXEがC#アプリケーションであることも重要ではありません。タグが削除されました。また、InstallShieldのどのバージョン、エディション、およびプロジェクトタイプが使用されているかを理解するのに役立ちます。 –

答えて

15

InstallShieldのどのバージョンとエディションをお使いですか?またどのプロジェクトタイプを使用していますか? (?のInstallScript、のInstallScript MSI、基本のMSI)基本のMSIを想定し

は、InstallShieldは、この物語をサポートする組み込みのパターンがあります)

1をプロジェクトアシスタントタブに

2をクリックします)をクリックしますインストールのインタビューアイコン(ページ)

3)「あなたはユーザーにインストールが完了したら?

4を、あなたのアプリケーションを起動するオプションを与えたいと思うかのために、[はい]をクリックします)そのEXEを選択するために、参照ボタンをクリックしてくださいシュウldは操作の対象です。

デフォルトでは、セットアップ完了ダイアログのチェックボックス(起動プログラム)は選択されません。自動的に選択するには、プロパティテーブルにプロパティLAUNCHPROGRAMを追加し、値を '1'に設定します。

+1

私はこれらの手順に従って、私のアプリが起動されます。ただし、UIは表示されません。しかし、デスクトップ上のショートカットをクリックすると、UIが表示されます。私はこれに慣れていないので、何が欠けているのか分かりません。 – skb

+0

私はあなたのアプリケーションが作業ディレクトリに敏感で、あなたのショートカットによって提供されていると推測しています。 –

4

クリストファーペインターの回答は、ほとんどの場合あなたのために働くでしょう。それらは最初のステップですが、十分ではないと分かった場合は追加の詳細があります。例えば、skbはこれが彼のためにはうまくいかないと報告した。私は同じボートにいることに気がつきました(この仕事をしている他のインストーラを十数個作りましたが!)。

  1. クリストファーペインターの指示に従ってください。
  2. [インストールデザイナー]タブをクリックします。 "User Interface"内で "Dialogs"を選択します。
  3. "すべてのダイアログ"で "SetupCompleteSuccess"を展開し、 "動作"を選択します。
  4. 「OK」プッシュボタンコントロールを選択します。次に、[イベント]を選択します。
  5. 「DoAction」イベントは、「引数」が「IS_LAUNCH_MY_PROGRAM_PLEASE」で、「条件」が「LAUNCHPROGRAM」である必要があります。そうでない場合 - それを追加します。 "LAUNCHPROGRAM"はその名前のプロパティを参照します。起動チェックボックスが選択されている場合、この値は1になり、この条件を満たすことになります。 IS_LAUNCH_MY_PROGRAM_PLEASEは、起動されたカスタムアクションを指します。必要に応じて、ここでそのCAを変更してカスタムアクションを実行することができます。私はこれだけを残すことにしましたが、CAを自分のものに置き換えました。
  6. カスタムアクションのリストを開きます(ビヘイビアとロジック...カスタムアクションとシーケンス)。 IS_LAUNCH_MY_PROGRAM_PLEASEという名前のCAがあるはずです。消して!
  7. 独自のIS_LAUNCH_MY_PROGRAM_PLEASE CAを追加してください。 [カスタムアクション](リストヘッダー)を右クリックして、必要なCAのタイプを選択するか、ウィザードを起動します。ダイアログの動作をデフォルトのままにしておいた場合は、必ず「IS_LAUNCH_MY_PROGRAM_PLEASE」という名前を付けてください。
  8. WORKING DIRECTORYが変更された(これは私のアプリケーションが表示されず、コメントに基づいていると思われる理由でもあります) "新しいEXE" ... "ディレクトリを参照するパス"を選択してください。「リターン処理」を「非同期(完了待ち)なし」に変更します。 "MSIタイプ番号"が226になることに注意してください。 "作業ディレクトリ"をINSTALLDIRに設定してください(起動したいプログラムがあなたの新しいプログラムのディレクトリにあるはずです)。 "Filename &コマンドライン"を[INSTALLDIR]YourApp.exeに設定します。
+0

また、ディレクトリの影響を受けないように自分のアプリを修正することもできます。 –

+0

それは本当です...しかし、必ずしも速くて簡単なわけではありません。作業ディレクトリを設定することは、他のプロセスを起動するための事実上の普遍的な特性であり、なぜISにもそのオプションが存在する理由です。インストーラを緩和するために、プログラムの相対パスを解決する能力を再設計しますか?それは後方にあるようだ。他のインストーラは、通常これを簡単にします。あなたは、インストーラにしっかりとカップリングさせるべきではありません。 – BuvinJ

+0

私は、アプリケーションの不具合の周りにインストーラパッチを持っているのは、後方にあると主張します。インストーラを作業ディレクトリに設定すると、緊密に結合されます。また、質問をするデベロッパーがアプリケーションをよく理解し、インストーラを実行する可能性が高いため、おそらく迅速かつ簡単になります。 –

関連する問題