1

MSI の新しいバージョンを Web で定期的にチェックしてプログラムを更新する関連サービスを備えたキオスクにプログラムがあります。見つかった場合はインストールしますが、プログラムはまだ実行されている可能性があります。

上記のソリューションの DLL の競合を回避するために、MSI 内のアセンブリの名前を by version に変更して、古いバージョンの実行中に新しいバージョンをインストールできるようにします。アプリケーションは、新しいバージョンのアセンブリのインストール ディレクトリをポーリングし、使用されていないものを見つけたらすぐに再起動します。これを行うためのより良い方法はありますか?

4

2 に答える 2

2

ここでは、ClickOnce の方が適していると思いませんか?

http://msdn.microsoft.com/en-us/library/t71a733d.aspx

于 2012-01-24T12:40:45.457 に答える
2

この話は以前にもやったことがあります。それはこのように動作します:

UI は、ログオンしたユーザーとして実行されています。

サービスはシステムとして実行されています。サービスはコンテンツをチェックし、それを一時ディレクトリにダウンロードします。次に、/JM コマンドを使用して MSI をアドバタイズします。非特権ユーザーがインストーラーをインストールできるようになりました。

サービスは、IPC メッセージをアプリケーションに送信して、インストールの時期になったことを伝えます。アプリケーションはインストーラーを開始し、アプリケーションの再起動を示すフラグを渡します。アプリケーションは、ロックされたファイルの解放を終了します。

インストーラーの最後に、このフラグにより​​、インストーラーはアプリケーションを再起動します。

wu4 ライブラリも見てください。このソリューションの多くを作成するのに役立ちます。

于 2012-01-24T22:20:21.240 に答える