ClickOnce は、アプリケーションの配置マニフェストで指定されたファイル バージョン情報を使用して、アプリケーションのファイルを更新するかどうかを決定します。 更新が開始された後、ClickOnce は ファイル修正プログラムの適用 と呼ばれる手法を使用して、アプリケーション ファイルの冗長なダウンロードを回避します。
ファイルのパッチ適用
アプリケーションを更新する場合、ファイルが変更されていない限り、ClickOnce はアプリケーションの新しいバージョンのすべてのファイルをダウンロードしません。 代わりに、現在のアプリケーションのアプリケーション マニフェストで指定されたファイルのハッシュ署名と、新しいバージョンのマニフェスト内の署名を比較します。 ファイルの署名が異なる場合、ClickOnce は新しいバージョンをダウンロードします。 署名が一致する場合、ファイルは 1 つのバージョンから次のバージョンに変更されていません。 この場合、ClickOnce は既存のファイルをコピーし、アプリケーションの新しいバージョンで使用します。 この方法では、1 つまたは 2 つのファイルのみが変更された場合でも、ClickOnce がアプリケーション全体を再度ダウンロードする必要がありません。
ファイルの修正プログラムの適用は、 DownloadFileGroup および DownloadFileGroupAsync メソッドを使用して必要に応じてダウンロードされるアセンブリでも機能します。
注
ApplicationDeployment名前空間のSystem.Deployment.Application クラスと API は、.NET Core および .NET 5 以降のバージョンではサポートされていません。 .NET 7 では、アプリケーション展開プロパティにアクセスするための新しい方法がサポートされています。 詳細については、「 .NET での ClickOnce 配置プロパティへのアクセス」を参照してください。 .NET 7 では、ApplicationDeployment メソッドと同等のメソッドはサポートされていません。
Visual Studio を使用してアプリケーションをコンパイルすると、プロジェクト全体をリビルドするたびに、すべてのファイルに対して新しいハッシュ署名が生成されます。 この場合、変更されたアセンブリはごくわずかですが、すべてのアセンブリがクライアントにダウンロードされます。
ファイルの修正プログラムの適用は、データとしてマークされ、データ ディレクトリに格納されているファイルでは機能しません。 これらは、ファイルのハッシュ署名に関係なく、常にダウンロードされます。 データ ディレクトリの詳細については、「 ClickOnce アプリケーションのローカル データとリモート データにアクセスする」を参照してください。