Share via


針對測試和實際執行伺服器部署 ClickOnce 應用程式但不重新簽署

本文說明 .NET Framework 3.5 版中引進的 ClickOnce 功能,可讓您從多個網路位置部署 ClickOnce 應用程式,而不需要重新簽署或變更 ClickOnce 資訊清單。

注意

重新簽署仍然是部署新版應用程式的慣用方法。 請盡可能使用重新簽署方法。 如需詳細資訊,請參閱 Mage.exe (資訊清單產生和編輯工具)

協力廠商開發人員和 ISV 可以選擇加入此功能,讓客戶更輕鬆地更新其應用程式。 此功能可在下列狀況中使用:

  • 更新應用程式時,不適用於應用程式的第一次安裝。

  • 當電腦上只有一個應用程式組態時。 例如,如果應用程式設定為指向兩個不同的資料庫,則無法使用此功能。

從部署資訊清單中排除 deploymentProvider

在 .NET Framework 2.0 和 .NET Framework 3.0 中,任何安裝在系統上以提供離線可用性的 ClickOnce 應用程式,都必須在其部署資訊清單中列出 deploymentProviderdeploymentProvider 通常稱為更新位置;這是 ClickOnce 檢查是否有應用程式更新的位置。 這項需求以及應用程式發行者簽署其部署的需求,使得公司難以從廠商或其他協力廠商更新 ClickOnce 應用程式。 這也使得從相同網路上的多個位置部署相同應用程式會更加困難。

透過在 .NET Framework 3.5 中對 ClickOnce 所做的變更,協力廠商可以將 ClickOnce 應用程式提供給另一個組織,而該組織接著可以在自己的網路上部署該應用程式。

為了利用這項功能,ClickOnce 應用程式的開發人員必須從其部署資訊清單中排除 deploymentProvider。 這項需求表示當您使用 Mage.exe 建立部署資訊清單時,必須排除 -providerUrl 引數。 或者,如果您要使用 MageUI.exe 來產生部署資訊清單,則必須確定 [應用程式資訊清單] 索引標籤上的 [啟動位置] 文字方塊是空白的。

注意

在 .NET Core 3.1 和 .NET 5 或更新版本的 ClickOnce 中使用 dotnet-mage.exe,而不是使用 Mage.exe。 如需詳細資訊,請參閱適用於 .NET 的 ClickOnce

deploymentProvider 和應用程式更新

從 .NET Framework 3.5 開始,您不再需要在部署資訊清單中指定 deploymentProvider,才能針對線上和離線使用方式部署 ClickOnce 應用程式。 這項變更支援您需要自行封裝和簽署部署的案例,但允許其他公司透過其網路部署應用程式。

要記住的重點是,排除 deploymentProvider 的應用程式在更新期間無法變更其安裝位置,直到其再次提供包含標籤的 deploymentProvider 更新為止。

以下是兩個用來釐清這一點的範例。 在第一個範例中,您會發行沒有 deploymentProvider 標籤的 ClickOnce 應用程式,並要求使用者從 http://www.adatum.com/MyApplication/ 進行安裝。 如果您決定要從 http://subdomain.adatum.com/MyApplication/ 發行應用程式的下一個更新,則您無法在位於 http://www.adatum.com/MyApplication/ 的部署資訊清單中表示這個更新。 您可以執行下列兩項動作之一:

  • 告知使用者解除安裝舊版,然後從新位置安裝新版本。

  • 包含 deploymentProvider 指向 http://www.adatum.com/MyApplication/http://www.adatum.com/MyApplication/ 上的更新。 然後,稍後再發行另一個 deploymentProvider 指向 http://subdomain.adatum.com/MyApplication/ 的更新。

    在第二個範例中,您會發行指定 deploymentProvider 的 ClickOnce 應用程式,然後決定將其移除。 一旦新版本沒有 deploymentProvider 下載到用戶端,您就無法重新導向用於更新的路徑,直到您發行已還原 deploymentProvider 的應用程式版本為止。 如同第一個範例,deploymentProvider 一開始必須指向目前的更新位置,而不是您的新位置。 在此情況下,如果您嘗試插入 http://subdomain.adatum.com/MyApplication/ 參考的 deploymentProvider,則下一個更新會失敗。

建立部署

如需建立可從不同網路位置部署的逐步指引,請參閱逐步解說:手動部署不需要重新簽署,並且保留商標資訊的 ClickOnce 應用程式