管理 ClickOnce 應用程式的更新

ClickOnce 應用程式可以自動或以程式設計方式檢查更新。 身為開發人員,您可以彈性地指定執行更新檢查的時機與方式、是否強制更新,以及應用程式應檢查更新的位置。

您可以將應用程式設定為在應用程式啟動之前自動檢查更新,或在應用程式啟動後的設定間隔進行更新。 此外,您也可以指定最低必要版本;也就是說,如果使用者的版本低於所需的版本,則會安裝更新。

您可以設定應用程式,根據使用者要求之類的事件,以程式設計方式檢查更新。 本主題中的「以程式設計方式檢查更新」程序示範如何撰寫程式碼,以使用 ApplicationDeployment 類別來根據事件檢查更新。

注意

.NET Core 和 .NET 5 和更新版本中不支援 System.Deployment.Application 命名空間中的 ApplicationDeployment 類別和 API。 .NET 7 支援存取應用程式部署屬性的新方法。 如需詳細資訊,請參閱在 .NET 中存取 ClickOnce 部署屬性。 .NET 7 不支援 ApplicationDeployment 方法的同等項。

您也可以從某個位置部署應用程式,然後從另一個位置進行更新。 請參閱「指定不同的更新位置」程序。

如需詳細資訊,請參閱選擇 ClickOnce 更新策略

更新行為是在 [應用程式更新] 對話方塊中管理,可從 [專案設計工具] 的 [發行] 頁面取得。

在應用程式啟動前檢查更新

  1. 在方案總管 中選取專案之後,按一下 [專案] 功能表中 [屬性]

  2. 按一下 [發佈] 索引標籤。

    注意

    在 ClickOnce for .NET Core 3.1 和 .NET 5 或更新版本中,您可以使用 [發佈] 工具來設定部署屬性,而不是 [發行精靈] 和 [專案設計工具的發佈] 頁面。 如需詳細資訊,請參閱使用 ClickOnce 部署 .NET Windows 應用程式以及 ClickOnce for .NET

  3. 按一下 [更新] 按鈕以開啟 [應用程式更新] 對話方塊。

  4. 在 [應用程式更新] 對話方塊中,確定已選取 [應用程式應該檢查更新] 核取方塊。

  5. 在 [選擇應用程式何時應該檢查更新] 區段中,選取 [在應用程式啟動之前]。 這可確保連線至網路的使用者一律會執行具有最新更新的應用程式。

在應用程式啟動之後,於背景檢查更新

  1. 在方案總管 中選取專案之後,按一下 [專案] 功能表中 [屬性]

  2. 按一下 [發佈] 索引標籤。

  3. 按一下 [更新] 按鈕以開啟 [應用程式更新] 對話方塊。

  4. 在 [應用程式更新] 對話方塊中,確定已選取核取方塊 [應用程式應該檢查更新]

  5. 在 [選擇應用程式何時應該檢查更新] 區段中,選取 [在應用程式啟動之後]。 應用程式會以這種方式更快速地啟動,然後檢查背景中的更新,並只在有更新可用時通知使用者。 安裝之後,更新在直到應用程式重新啟動為止之前不會生效。

  6. 在 [指定應用程式應該檢查更新的頻率] 區段中,選取 [每次執行應用程式時檢查] (預設值) 或 [每次檢查],並輸入數字和時間間隔。

注意

在適用於 .NET Core 和 .NET 5 或更新版本的 ClickOnce 中,不支援此工作。 如需詳細資訊,請參閱適用於 .NET 的 ClickOnce

若要指定此應用程式的最低必要的版本

  1. 在方案總管 中選取專案之後,按一下 [專案] 功能表中 [屬性]

  2. 按一下 [發佈] 索引標籤。

  3. 按一下 [更新] 按鈕以開啟 [應用程式更新] 對話方塊。

  4. 在 [應用程式更新] 對話方塊中,確定已選取 [應用程式應該檢查更新] 核取方塊。

  5. 選取 [指定此應用程式的最低必要版本] 核取方塊,然後輸入應用程式的 [主要]、[次要]、[組建] 和 [修訂編號]

指定不同的更新位置

  1. 在方案總管 中選取專案之後,按一下 [專案] 功能表中 [屬性]

  2. 按一下 [發佈] 索引標籤。

  3. 按一下 [更新] 按鈕以開啟 [應用程式更新] 對話方塊。

  4. 在 [應用程式更新] 對話方塊中,確定已選取 [應用程式應該檢查更新] 核取方塊。

  5. 在 [更新位置] 欄位中,使用 http://Hostname/ApplicationName 格式,或使用 \\Server\ApplicationName 格式的 UNC 路徑輸入具有完整 URL 的更新位置,或按一下 [瀏覽] 按鈕以瀏覽更新位置。

以程式設計方式檢查更新

  1. 在方案總管 中選取專案之後,按一下 [專案] 功能表中 [屬性]

  2. 按一下 [發佈] 索引標籤。

  3. 按一下 [更新] 按鈕以開啟 [應用程式更新] 對話方塊。

  4. 在 [應用程式更新] 對話方塊中,確定已清除 [應用程式應該檢查更新] 核取方塊。 (或者,您可以選取此核取方塊,以程式設計方式檢查更新,也讓 ClickOnce 執行階段自動檢查更新。)

  5. 在 [更新位置] 欄位中,使用 http://Hostname/ApplicationName 格式,或使用 \\Server\ApplicationName 格式的 UNC 路徑輸入具有完整 URL 的更新位置,或按一下 [瀏覽] 按鈕以瀏覽更新位置。 更新位置是應用程式會尋找本身更新版本的位置。

  6. 在 Windows Form 上建立讓使用者用來選取以檢查更新的按鈕、功能表項目或其他使用者介面項目。 從該項目的事件處理常式中,呼叫方法來檢查並安裝更新。 您可以在HOW TO:使用 ClickOnce 部署 API 以程式設計方式檢查應用程式更新中,找到此類方法的 Visual Basic 和 Visual C# 程式碼範例。

  7. 建置您的應用程式。