針對測試和實際執行伺服器部署 ClickOnce 應用程式但不重新簽署
本文說明 .NET Framework 3.5 版中引進的 ClickOnce 功能,可讓您從多個網路位置部署 ClickOnce 應用程式,而不需要重新簽署或變更 ClickOnce 資訊清單。
注意
重新簽署仍然是部署新版應用程式的慣用方法。 請盡可能使用重新簽署方法。 如需詳細資訊,請參閱 Mage.exe (資訊清單產生和編輯工具)。
協力廠商開發人員和 ISV 可以選擇加入此功能,讓客戶更輕鬆地更新其應用程式。 此功能可在下列狀況中使用:
更新應用程式時,不適用於應用程式的第一次安裝。
當電腦上只有一個應用程式組態時。 例如,如果應用程式設定為指向兩個不同的資料庫,則無法使用此功能。
從部署資訊清單中排除 deploymentProvider
在 .NET Framework 2.0 和 .NET Framework 3.0 中,任何安裝在系統上以提供離線可用性的 ClickOnce 應用程式,都必須在其部署資訊清單中列出 deploymentProvider
。 deploymentProvider
通常稱為更新位置;這是 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 應用程式。