ClickOnce 執行應用程式更新的方式
ClickOnce 會使用應用程式的部署資訊清單中指定的檔案版本資訊來決定是否更新應用程式的檔案。 更新開始之後,ClickOnce 會使用稱為「檔案修補」的技術,以避免下載多餘的應用程式檔案。
檔案修補
更新應用程式時,除非檔案已變更,否則 ClickOnce 不會下載新版應用程式的所有檔案。 相反地,它會比較目前應用程式的應用程式資訊清單中指定的檔案雜湊簽章與新版應用程式的資訊清單中的簽章。 如果檔案的簽章不同,ClickOnce 會下載新版本。 如果簽章相符,檔案就不會從一個版本變更為下一個版本。 在此情況下,ClickOnce 會複製現有的檔案,並在新版的應用程式中使用它。 此方法可防止 ClickOnce 必須再次下載整個應用程式,即使只有一或兩個檔案已變更亦然。
檔案修補也適用於使用 DownloadFileGroup 和 DownloadFileGroupAsync 方法視需要下載的元件。
注意
.NET Core 和 .NET 5 和更新版本中不支援 System.Deployment.Application 命名空間中的 ApplicationDeployment 類別和 API。 .NET 7 支援存取應用程式部署屬性的新方法。 如需詳細資訊,請參閱在 .NET 中存取 ClickOnce 部署屬性。 .NET 7 不支援 ApplicationDeployment 方法的同等項。
如果您使用 Visual Studio 來編譯應用程式,每當重建整個專案時,就會為所有檔案產生新的雜湊簽章。 在此情況下,所有組件都會下載到用戶端,不過只有少數組件可能已變更。
檔案修補不適用於標示為資料並儲存在資料目錄中的檔案。 不論檔案的雜湊簽章為何,一律會下載這些檔案。 如需資料目錄的詳細資訊,請參閱在 ClickOnce 應用程式中存取本機和遠端資料。