ClickOnce がアプリケーションの更新を実行するしくみ

更新 : 2007 年 11 月

ClickOnce は、アプリケーションの配置マニフェストに指定されたファイル バージョン情報を使用して、アプリケーションのファイルを更新するかどうかを決定します。更新が開始されると、ClickOnce はファイル パッチと呼ばれる技術を使用して、アプリケーション ファイルが重複してダウンロードされないようにします。

ファイル パッチ

ClickOnce は、アプリケーションを更新する際に、ファイルが変更されていない限り、新しいバージョンのアプリケーションに対応するすべてのファイルをダウンロードするわけではありません。代わりに、現在のアプリケーションのアプリケーション マニフェストに指定されたファイルのハッシュ署名を、新しいバージョンのマニフェストに指定された署名と比較します。ファイルの署名が異なっていれば、ClickOnce は新しいバージョンをダウンロードします。署名が一致する場合、ファイルは元のバージョンから変更されていません。この場合、ClickOnce は既存のファイルをコピーし、それを新しいバージョンのアプリケーションで使用します。この手法により ClickOnce は、数ファイルのみが変更された場合にアプリケーション全体をダウンロードし直さなくても済むようにしています。

ファイル パッチは、必要に応じて DownloadFileGroup メソッドおよび DownloadFileGroupAsync メソッドを使用してダウンロードされるアセンブリにも対応します。

Visual Studio を使用してアプリケーションをコンパイルした場合は、プロジェクト全体をビルドし直すたびに、すべてのファイルに対して新しいハッシュ署名が生成されます。この状況では、数個のアセンブリのみが変更された場合でも、すべてのアセンブリがクライアントにダウンロードされます。

データとしてマークされ、データ ディレクトリに格納されているファイルには、ファイル パッチが機能しません。これらのファイルは、そのハッシュ署名に関係なく常にダウンロードされます。データ ディレクトリの詳細については、「ClickOnce アプリケーションにおけるローカル データおよびリモート データへのアクセス」を参照してください。

参照

概念

ClickOnce の更新方法の選択

ClickOnce 配置ストラテジの選択