大家好,我是沙漠盡頭的狼,
.NET是免費,跨平臺,開源,用于構建所有應用的開發人員平臺,
今天介紹使用ClickOnce制作軟體安裝包,首先我們先了解什么是ClickOne,
1. 什么是ClickOnce
以下段落摘自微軟檔案:https://learn.microsoft.com/zh-cn/visualstudio/deployment/clickonce-security-and-deployment?view=vs-2022,
ClickOnce 是一種部署技術,使用該技術可創建自行更新的基于 Windows 的應用程式,這些應用程式可以通過最低程度的用戶互動來安裝和運行,
ClickOnce 部署克服了部署中所固有的三個主要問題:
- 更新應用程式的困難
使用 Microsoft Windows Installer 部署,每次應用程式更新,用戶都必須重新安裝整個應用程式;使用 ClickOnce 部署,則可以自動提供更新,只有更改過的應用程式部分才會被下載,然后從新的并行檔案夾重新安裝完整的、更新后的應用程式,
- 對用戶的計算機的影響
使用 Windows Installer 部署時,應用程式通常依賴于共享組件,這便有可能發生版本沖突;而使用 ClickOnce 部署時,每個應用程式都是獨立的,不會干擾其他應用程式,
- 安全權限
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
,
- 選擇
WPFBlazorChat
工程,右鍵發布
- 在彈出的界面,選擇ClickOnce,點擊下一步
- 發布位置隨意
- 選擇軟體安裝包獲取地址
- 設定
- 可配置程式運行時自動檢測更新、軟體版本號等,如下圖:
如上圖,如果勾選【自動遞增修訂號】,那么每次點擊發布,修訂號會遞增(感覺說的是廢話,主要是方便版本號管理),
- 點擊應用程式檔案,可勾選哪些檔案可以不用下載,如下圖:
- 選擇先決條件,即選擇程式的運行時,因為程式默認支持.NET 6和.NET 7,所以站長勾選了.NET 7 x64,win7 32位的同學如有需要,按需選擇:
- 選項配置
配置軟體安裝包資訊,其中比較重要的是發布者名稱和套件名稱,決定軟體程式釋放位置:
部署檔案配置,其中Publish.html配置了安裝包下載頁面
- 簽名清單
未設定,直接下一步:
- 程式發布配置
按情況選擇,站長選擇的.NET 7 64位發布,注意需要和前面選擇.NET桌面運行時版本一致
:
- 點擊發布
最后一個操作,點擊發布
發布完成,點擊【發布位置】路徑:
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
- ClickOnce 部署的作業原理
核心 ClickOnce 部署體系結構基于兩個 XML 清單檔案:應用程式清單和部署清單, 這些檔案用于描述從哪里安裝 ClickOnce 應用程式、如何更新這些應用程式以及何時更新它們,
更多請訪問微軟檔案:https://learn.microsoft.com/zh-cn/visualstudio/deployment/clickonce-security-and-deployment?view=vs-2022
本文完,下篇介紹WPF中如何使用Blazor開發應用,
時間如流水,只能流去不流回,轉載請註明出處,本文鏈接:https://www.uj5u.com/net/526742.html
標籤:.NET Core
上一篇:C# Interlocked 類