2009-07-22 19 views

答えて

6

一般的に、アプリケーションは起動時に更新が利用可能であることに気付いた後、更新するかどうかをユーザーに確認します。次に、更新プロセスを開始して終了します。更新プロセスによってファイルが置き換えられ、新しいバージョンが起動されます。あなたが再起動することなく、アプリケーションの一部作品を更新して逃げることができるかもしれ一部例で

- しかし、追加複雑さが重要であり、かつ率直に言って、それは良いでしょうIMO、例99%にしようとしません。もちろん

、あなたが書いているアプリの種類を言っていない - あなたはより多くの情報を与えることができれば、役立つだろうという。

3

アプリケーションは、一般的にアプリケーションを更新すると、その新しいバージョンで実行可能ファイル(.exeファイル、の.dllなど)を置き換える意味するので、それを更新する前にクローズする必要があり、これは、アプリケーションを終了せずに行うことはできません。

Jon said の場合は、アプリケーションを閉じることなくアップグレードすることができます。しかし、これは推奨されません。これは、アップデータで障害が発生し、アップデート全体がロールバックする可能性があるためです。

アップデータまず、アップデートをダウンロードし、その後、メインのアプリケーションを閉じて、それらを適用すると、メインアプリケーションを起動して終了します別の実行可能(この例はSkypeFireFox、などである)

0

ますバックエンドを別個のプロセス/モジュールに分離し、ユーザがそれを実現することなくバックエンドを再起動することによってバックエンドを更新することができる。フロントエンドの更新

は少しトリッキーになりますが、必要であれば、回避または遅延することができます。

0

これを達成するためのすてきでクリーンな方法は、動的プラグインを使用することです。 プラグインベースのアプリケーションを大幅にコーディングすることができます。更新が必要な場合は、更新が必要なプラグインをアンロードし、.dllファイルを更新してアプリケーションに戻します。 しかし、これをユーザーに見えないようにするのは難しい作業なので、設計とコーディングに大きく依存します。

0

しかし私は、慎重にコード化されなければならなかったこと、のが住んでexeファイルを交換する能力を有するインタイムを覚えています。私はそれが可能であることを知っているが、Jon Skeetが言ったように、あなたは試していないほうが良いだろう。必要な場合は1つのダウン/再起動を遮断することができるよう

あなたが自動化または非常に深刻なもののいくつかの種類をやっている場合を除き

は...でも、その後、あなたは、フェールオーバーを検討すべきです。

0

、あなたのアプリケーションとDLLを立ち上げ、骨格フレームワークのいくつかのいくつかの並べ替えを持っている場合は、CreateDomainで見ることができます。それはあなたの部分で深刻な設計努力を取るでしょう。がんばろう!

関連する問題