.net winform軟體自動更新
關於.NET windows軟體實現自動更新,本人今天寫了一個DEMO,供大家參考。
大家先看下效果圖:
主要涉及到兩個方面
1. 更新軟體主專案和DLL檔案
2.升級包自身的更新
1. 一個專案通常包括主專案和類庫專案,主專案就是啟動專案,以.exe結尾,類庫專案主要是DLL, 簡單的說更新就是將軟體本地的主專案和類庫專案進行更新。
可以採用將最新的軟體放到一個遠端伺服器上,然後每次啟動本地軟體時候,檢查如果有更新,就從伺服器上下載最新的.EXE檔案和DLL檔案,
來替換本地的DLL檔案和exe檔案
實現思路:在本地和伺服器上各放一個XML檔案,裡面記錄了軟體版本號,釋出日期,要更新的DLL等一些資訊,如果發現本地軟體的版本號和伺服器上的不相等,或者
本地軟體中的類庫專案的釋出時間比服務上的晚,就開始下載伺服器上的檔案,替換掉本地的檔案。
XML格式如下
<?xml version="1.0" encoding="utf-8"?> <AutoUpdater> <AppName>WinUpdate</AppName> <ReleaseURL>http://127.0.0.1/webdown/</ReleaseURL> <ReleaseDate>2012/3/1 10:42:34</ReleaseDate> <ReleaseVersion>1.0.1.99</ReleaseVersion> <MinVersion>1.0.1.88</MinVersion> <UpdateDes> 1、 新增列印選單 2、 增加DLL 3、增加關於模組 </UpdateDes> <ApplicationStart>WinUpdate.exe</ApplicationStart> <ShortcutIcon>ico</ShortcutIcon> <Releases> <File name="AboutForm.dll" date="2012/2/21 10:07:31" size="39" /> </Releases> </AutoUpdater>
public static void DownloadFile(string localFolder, string remoteFolder, string fileName, ProgressBar bar, Label lblSize) { string url = remoteFolder + "/" + fileName; string path = localFolder+ fileName; string dir = Path.GetDirectoryName(path); if (!Directory.Exists(dir)) Directory.CreateDirectory(dir); WebRequest req = WebRequest.Create(url); WebResponse res = req.GetResponse(); if (res.ContentLength == 0) return; long fileLength = res.ContentLength; string totalSize = FormatFileSizeDescription(bar.Maximum); using (Stream srm = res.GetResponseStream()) { var srmReader = new StreamReader(srm); var bufferbyte = new byte[fileLength]; int allByte = bufferbyte.Length; int startByte = 0; while (fileLength > 0) { int downByte = srm.Read(bufferbyte, startByte, allByte); if (downByte == 0) { break; } ; startByte += downByte; allByte -= downByte; int progress = bar.Value + downByte; progress = progress > bar.Maximum ? bar.Maximum : progress; bar.Value = progress; lblSize.Text = string.Format("已完成{0}/{1}", FormatFileSizeDescription(progress), totalSize); } var fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write); fs.Write(bufferbyte, 0, bufferbyte.Length); srm.Close(); srmReader.Close(); fs.Close(); } } }
2.關於升級包自身的更新,採用如下思路,在伺服器上放置一個TXT檔案,裡面存放著升級包的版本號,每次本地軟體啟動的時候,
讀取伺服器上TXT檔案的版本號和本地升級包的版本資訊進行比較,如果不同,就從伺服器上下載升級包。
關於下載本專案都是使用WebClient進行完成的。
自己可以採用如下方式進行測試
首先,在你的IIS下面建立一個虛擬目錄: ,此目錄用來放置要更新的檔案,內容如下
1.ReleaseList.xml和1.0.4.98資料夾主要是實現軟體更新
ReleaseList.xml存放了需要更新的內容。1.0.4.98資料夾存放了需要更新的類庫和檔案
2. AutoUpdate.exe,UpdaterVerson.txt這兩個檔案實現的升級包自身進行更新.
AutoUpdate.exe是升級包,UpdaterVerson.txt存放的是升級包的版本號
將以上內容部署到IIS下面
本程式碼使用VS2008進行開發,
DEMO下載
相關推薦
.net winform軟體自動更新
關於.NET windows軟體實現自動更新,本人今天寫了一個DEMO,供大家參考。 大家先看下效果圖: 主要涉及到兩個方面 1. 更新軟體主專案和DLL檔案 2.升級包自身的更新
WinForm通用自動更新器AutoUpdater項目實戰
C# WinForm 自動升級 .NET ASP.NET 一、項目背景介紹最近單位開發一個項目,其中需要用到自動升級功能。因為自動升級是一個比較常用的功能,可能會在很多程序中用到,於是,我就想寫一個自動升級的組件,在應用程序中,只需要引用這個自動升級組件,並添加少量代碼,即可實現自動升級功
使用 advanced installer 為 winform 做自動更新
upd clas net ins 切換 sheet 新建 彈出框 服務器 原文:使用 advanced installer 為 winform 做自動更新 advanced i
C# winForm 軟體自動升級實現方式
對於C#winform開發者來說,軟體自動升級功能是一個很重要的功能。作者根據自身經驗,和大家分享一下軟體升級的實現方式。 注意:本文主要介紹通過WebService升級軟體。作者的另一篇通過FTP方式升級軟體的介紹可在作者的另一篇文中檢視https://jingyan.baidu.com/ar
利用coding.net的webhook自動更新程式碼
如何利用webhook自動更新程式碼網上已經有很多教程,這裡記錄一下一個小細節。 比如,我要更新的網站目錄所屬使用者是www,則必須在www使用者環境下生成ssh-key,然後新增到coding.
C++實現軟體自動更新功能
按照http協議,傳送請求資料 char *request = "GET /version.txt HTTP/1.0\r\nHost:www.xxx.com\r\nConnection: Close\r\n\r\n"; GET這個是表示以什麼方式請求,HTTP中還有很多其他的請求方式,常
WinForm通用自動更新AutoUpdater專案實戰
目前我們做的上位機專案還是以Winform為主,在實際應用過程中,可能還會出現一些細節的修改。對於這種情況,如果上位機帶有自動更新功能,我們只需要將更新後的應用程式打包放在指定的路徑下,可以讓使用者自己來進行更新使用,會大大增加專案的便捷性。 01.自動更新整體思路 今天給大家介紹一下如何基於C
winform自動更新之AutoUpdater.NET
版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/zhaobw831/article/details/82226291使用AutoUpdater.NET對winform程式進行自動更新介紹AutoUpdater.NET是一個.NET平臺下桌面應用程式的一個自動升
winform自動更新程序實現
覆蓋 win7 流程 win mar 現在 OS mes pre 一、問題背景 本地程序在實際項目使用過程中,因為可以操作電腦本地的一些信息,並且對於串口、OPC、並口等數據可以方便的進行收發,雖然現在軟件行業看著動不動都是互聯網啊啥的,大有Web服務就是高大上的感覺,
[C#.net]WinForm載入窗體完成後自動執行事件
activate window 顏色 加載完成 false bsp eat pan ble 一、以下是網絡上可搜索到的次序 當 Windows Form 應用程序啟動時,會以下列順序引發主要表單的啟動事件: System.Windows.Forms.Co
C# Winform下一個熱插拔的MIS/MRP/ERP框架14(自動更新)
對於軟體來說,啟用自動更新是非常必要的。 根據軟體的應用場景,我們可以設計不同的更新模型。 目前,IMES框架執行在.Net framework 4.0下面,使用的Win系統版本在Win7,域內管控,平時業務調整也不是很頻繁。 所以,我的更新很粗放,就是刪除舊檔案,拷貝新檔案: 1、更新檔案放置在檔案
在WinForm中使用Web Services 來實現 軟體 自動升級( Auto Update ) (C#)
winform程式相對web程式而言,功能更強大,程式設計更方便,但軟體更新卻相當麻煩,要到客戶端一臺一臺地升級,面對這個實際問題,在最近的一個小專案中,本人設計了一個通過軟體實現自動升級技術方案,彌補了這一缺陷,有較好的參考價值。 一、升級的好處。  
vs .net專案自動更新版本號
使用SVN的一個程式, 一般都會裝,無需再次下載和安裝了. 只需要在專案屬性-> 生成事件-> 後期生成事件命令 中加入 subwcrev.exe $(ProjectDir)Properties\ $(ProjectDir)Properties\AssemblyInfo.
Winform 打包 混淆 自動更新
路徑: 最終的解決方案是,ConfuserEx+Installshield+AutoUpdater.NET,ConfuserEx做程式碼混淆工作,Installshield可以解決登錄檔的問題,AutoUpdater.NET用起來太方便了! <?xml version="1.0" encoding=
WIN10系統自動更新一鍵禁止軟體
軟體介紹: Windows 10是美國微軟公司研發的跨平臺及裝置應用的作業系統。是微軟釋出的最後一個獨立Windows版本。 Windows 10共有7個發行版本,分別面向不同使用者和裝置。 截止至2018年10月3日,Windows 10正式版已更新
AgileEAS.NET SOA中介軟體平臺更新日誌 2015-04-28
一、前言 AgileEAS.NET SOA 中介軟體平臺是一款基於基於敏捷並行開發思想和Microsoft .Net構件(元件)開發技術而構建的一個快速開發應用平臺。用於幫助中小型軟體企業建立一條適合市場快速變化的開發團隊,以達到節省開發成本、縮短開發時間,快速適應市場變化的目的。 A
winform 自動更新 釋出IIS
1.新增功能和框架 (控制面板--程式--啟用或關閉windows功能 --打勾(Internet Information Services,Internet Information Services
winform應用程式自動更新版本
我現在做的是由更新程式來更新winform程式,但是最後的目的是想winform自己本身能夠更新吧,還是沒找到好的方法,現記錄下有update.exe來更新winform.exe。 1.先建一個記錄有版本資訊的xml檔案,update.xml 其中的程式碼如下: <r
asp.net aspx.designer.cs文件不自動更新
family spa 編輯 情況下 規範 ont designer 進行 標簽 一般情況下,對aspx進行編輯後,所對應的aspx.designer.cs文件會自動更新, 但有時候vs會拒絕自動更新。 1.當aspx裏面有錯時; 2.標簽名不規範時,如: <asp:P
unattended-upgrades:好用的無人職守自動更新軟體
unattended-upgraded軟體包:自動更新系統軟體 sudo apt install unattended-upgrades 安裝unattended-upgrades軟體 unattended-upgrades配置檔案常用配置: /etc/apt/apt.con