快速建立軟體安裝包-ClickOnce

2022-11-03 06:01:07

大家好,我是沙漠盡頭的狼。

.NET是免費,跨平臺,開源,用於構建所有應用的開發人員平臺。

今天介紹使用ClickOnce製作軟體安裝包,首先我們先了解什麼是ClickOne。

1. 什麼是ClickOnce

以下段落摘自微軟檔案:https://learn.microsoft.com/zh-cn/visualstudio/deployment/clickonce-security-and-deployment?view=vs-2022。


ClickOnce 是一種部署技術,使用該技術可建立自行更新的基於 Windows 的應用程式,這些應用程式可以通過最低程度的使用者互動來安裝和執行。

ClickOnce 部署克服了部署中所固有的三個主要問題:

  1. 更新應用程式的困難

使用 Microsoft Windows Installer 部署,每次應用程式更新,使用者都必須重新安裝整個應用程式;使用 ClickOnce 部署,則可以自動提供更新。只有更改過的應用程式部分才會被下載,然後從新的並行資料夾重新安裝完整的、更新後的應用程式。

  1. 對使用者的計算機的影響

使用 Windows Installer 部署時,應用程式通常依賴於共用元件,這便有可能發生版本衝突;而使用 ClickOnce 部署時,每個應用程式都是獨立的,不會干擾其他應用程式。

  1. 安全許可權

Windows Installer 部署要求管理員許可權並且只允許受限制的使用者安裝;而 ClickOnce 部署允許非管理使用者安裝應用程式並僅授予應用程式所需要的那些程式碼存取安全許可權。

過去,這些問題有時會使開發人員決定建立 Web 應用程式而不是基於 Windows 的應用程式,為便於安裝而犧牲了 Windows表單豐富的使用者介面和響應性。對於使用 ClickOnce 部署的應用程式,您可以集這兩種技術的優勢於一身。

2. 使用ClickOnce建立安裝包

2.1 需要伺服器

首先,我們需要一個線上的網站,用於託管軟體更新檔案,比如在Dotnet9網站的根目錄建立一個WPFBlazorChat的目錄,那麼線上託管地址則是https://dotnet9.com/WPFBlazorChat,目錄如下:

2.2 開始製作安裝包

記住上面的線上地址,使用前幾天介紹的WPFBlazorChat做為範例做安裝包,倉庫地址是:https://github.com/dotnet9/WPFBlazorChat,所以上面建立的目錄與專案名同名:WPFBlazorChat

  1. 選擇WPFBlazorChat工程,右鍵釋出

  1. 在彈出的介面,選擇ClickOnce,點選下一步

  1. 釋出位置隨意

  1. 選擇軟體安裝包獲取地址

  1. 設定
  • 可設定程式執行時自動檢測更新、軟體版本號等,如下圖:

如上圖,如果勾選【自動遞增修訂號】,那麼每次點選釋出,修訂號會遞增(感覺說的是廢話,主要是方便版本號管理)。

  • 點選應用程式檔案,可勾選哪些檔案可以不用下載,如下圖:

  • 選擇先決條件,即選擇程式的執行時,因為程式預設支援.NET 6和.NET 7,所以站長勾選了.NET 7 x64,win7 32位元的同學如有需要,按需選擇:

  • 選項設定

設定軟體安裝包資訊,其中比較重要的是釋出者名稱和套件名稱,決定軟體程式釋放位置:

部署檔案設定,其中Publish.html設定了安裝包下載頁面

  1. 簽名清單

未設定,直接下一步:

  1. 程式釋出設定

按情況選擇,站長選擇的.NET 7 64位元釋出,注意需要和前面選擇.NET桌面執行時版本一致

  1. 點選釋出

最後一個操作,點選釋出

釋出完成,點選【釋出位置】路徑:

2.3 上傳

上面製作了軟體安裝包,還差一個步驟,就是把安裝包丟網站上去,這個就比較簡單了,前提是網站已經部署了哈:

2.4 程式安裝、執行

地址是:https://dotnet9.com/WPFBlazorChat/Publish.html

如上圖,顯示了我們建立安裝包設定的軟體安裝包名稱、版本號、釋出者、需要的.NET執行時版本等,點選【安裝】按鈕,會下載一個setup.exe安裝檔案,這個檔案很小,666KB,好吉利的數位:

執行setup.exe,會自動從上面的伺服器(https://dotnet9.com/WPFBlazorChat/)中檢測版本號、檔案更新情況,自動下載程式檔案了:

下圖是伺服器軟體安裝包資訊:

下圖是安裝過程截圖:

安裝包下載完成後,程式自動執行,下面就是測試程式執行介面了,WPF Blazor開發的喲,點選戳原始碼

3. Q&A

  1. ClickOnce 部署的工作原理

核心 ClickOnce 部署體系結構基於兩個 XML 清單檔案:應用程式清單和部署清單。 這些檔案用於描述從哪裡安裝 ClickOnce 應用程式、如何更新這些應用程式以及何時更新它們。

更多請存取微軟檔案:https://learn.microsoft.com/zh-cn/visualstudio/deployment/clickonce-security-and-deployment?view=vs-2022

本文完,下篇介紹WPF中如何使用Blazor開發應用。