2017-02-18 4 views
0

私のC#アプリケーション用のVisual Studio Installerプロジェクトがあります。それは私のアプリの以前のバージョンをアンインストールし、新しいバージョンをインストールして、それがインストールされた後にアプリケーションを実行するように設定されています。この時点で新しいバージョンがインストールされてロードされると、インストーラは終了しません

Example

、私のアプリの新バージョンがインストールされていたし、それは非常に喜んで実行されている:それは最終的に「お待ちください」のステージに座って非常に最後まで期待通りに動作しますしかし、上記のスクリーンショットはそこに置かれています(完全に反応します)。新しくインストールしたバージョンのアプリケーションを手動で閉じた後は、「インストール完了」ウィンドウに移動します。

enter image description here

私は私のインストーラプロジェクトの設定で間違って何かを行っていますか?私は人々がインストールプロセスを完了するためだけに、アプリケーションをもう一度手動で実行しなければならないために、アプリケーションを閉じる必要がないようにしたい!そのため、インストーラをインストールしたら、新しいバージョンを自動的に実行するようにインストーラを設定しています。

答えて

1

これは、Visual Studio Installerプロジェクトを使用する場合によくある問題です。次の質問は、同様の問題を識別します。

Visual Studio Installer > How To Launch App at End of Installer

次の質問は、しかし、それがどのようにお勧めの不一致で、解決策を示しています

Run exe after msi installation?

私も推薦するソリューションは次のようになり可能であれば、Windowsインストーラの作成にWiX(http://wixtoolset.org/)を使用してください。学習曲線はVisual Studio Installerプロジェクトと比較して少し険しいかもしれませんが、それに慣れれば、Windows Installerの多くの機能に加えて一連の追加機能Wix Toolsetによって提供されます。 WiXのためのドキュメントは、あなたが何をしようとして達成する方法の例を示します:

http://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/run_program_after_install.html

+0

お返事ありがとうございます。現時点では、インストーラが正常に完了するように、「インストール後の起動」の部分を削除しました。理想的には、私はまだ私のアプリがインストール後に自動起動するように思うので、私はWiXをチェックします。私は本当にプログラムファイル(とスタートメニューのショートカット)にダンプするために1つのExeを持っていますので、うまくいけば、WiXを使ってこれを達成する方法についてのチュートリアルや指針があります。 – Rawns

+0

全く問題ありません。https://www.firegiant.com/wix/tutorial/のドキュメンテーションは多くの細部に分かれているので、圧倒的かもしれませんが、Windowsインストーラのコンセプトは非常によく理解されています。インストールの保守性、保守性、アップグレード性を維持したい場合は重要です。 –

2

私は明示的に言及見ていない主な問題はあることの終わりに、あなたのプログラムの実行インストールは同期的なので、インストーラは完了するのを待ちます。あなたはWiXのにプロジェクトを超える変更しない場合がある少なくとも二つの解決策:代わりにカスタムアクションとして直接プログラムを実行しているの

  1. 、あなたのexeファイルを非同期的にオフに発射する別の小さなカスタムアクションを作成し、終了します。

  2. Visual Studioの設定では、他のツールのように非同期設定を設定することはできませんが、Orcaを使用してMSIファイルを開いてCustomActionテーブルに移動してください。ほとんどの場合、カスタムアクションのタイプは3090になります。これを3282(192を追加)に変更すると、カスタムアクションが非同期になり、インストールが完了します。

関連する問題