2008-09-13 20 views
20

私はかなり単純なWinFormsアプリケーションをインストールするために使用するVisual Studioセットアッププロジェクトを持っています。インストールの最後に、ユーザーにアプリケーションを実行するかどうか尋ねる単一のチェックボックスを表示するカスタムユーザーインターフェイスページがあります。私は他のインストーラがこれを頻繁に行うのを見ました。しかし、インストールが完了した後、セットアッププロジェクトに実行可能ファイルを実行させる方法を見つけることはできません。アイデア?セットアッププロジェクトの最後に実行可能ファイルを実行するには?

注:カスタムアクションはインストールプロセスの一環として使用されるため使用できません。インストールの最後にユーザーが[閉じる]ボタンを押すと、インストールしたアプリケーションを実行します。

答えて

8

これはVisual Studioインストールプロジェクトの本当の制限の1つだと思います。インストールUIの最後のページを変更できる必要がありますが、VS.NETではこれを行う方法がありません。 .MSIがビルドされた後にテーブルを変更することはできますが、ビルドするたびにVS.NETがこれらの変更を上書きする可能性があります。インストールプロジェクトに含めるマージモジュールを使用して、最後のページを上書きすることができます。どちらの方法でも、.MSIでUIダイアログがどのように作成されているかに精通している必要がありますが、これは簡単なことではありません。

無料のスクリプトベースのインストーラーに切り替えるか、商用セットアップオーサリングアプリケーションを購入することをお勧めします(Peteを愛用してInstallShieldを購入しないでください)。 InstallAware(私はそれを使用していないが)を見てみましょう。

1

これは、セットアップ実行ファイルを起動して終了するのを待ってから、2番目のプログラムを起動するVB Scriptハーネスを作成することで、内部アプリケーションに対してこれを実行しました。

また、C実行可能ファイルでいくつかのWin API呼び出しを使用して、これを少しでも洗練することでこれを達成できます。

4

あなたはまた、使用することができますカスタムアクション

+0

を助けるかもしれない一つの良いリンクです。これはインストール後に実行されます。また、設定ダイアログに追加できるチェックボックスを条件ベースにすることもできます。条件プロパティでCHECKBOXA1 = 1とすると、たとえば –

4

は、私はちょうど外部ツールを必要としない非常に簡単な方法を見つけました。メインプロジェクトにはクラスファイルを追加し、セットアッププロジェクトにはカスタムアクションを追加するだけです。

http://www.codeproject.com/KB/install/Installation.aspx

+0

リンクがありがとうございました。私は全体のプロセスをもっとよく理解できました。 – DeveloperChris

+0

おかげです。便利なリンク – Ahmed

0

私は次の行を使用して、Mainメソッドにアセンブリを呼び出すことによって、それを管理する:

(typeof(ClassWithinAssemblyToExecute)).Assembly.EntryPoint.Invoke(null, new Object[] {}) 
+0

大丈夫なので、新しいプロセスを開始することはできませんが、必要なのは小さな設定フォームでした。 – Grub

0

は、カスタムインストーラでそれを行うことができます。インストーラクラスを追加するだけで、インストール後、インストール前のような多くのイベントが表示されます。インストール後に接続して、そこからプロセスクラスによってur exeを実行します。私はあなたのカスタムインストーラについての詳細を見つけるためにGoogleを提案します。ここ は、カスタムアクションを追加]を選択し、プライマリ出力exeファイルを参照することもでき税関行動にコミットフォルダの下のuにhttp://www.codeproject.com/Articles/19560/Launching-Your-Application-After-Install-using-Vis

おかげ

関連する問題