VB winform自动更新 笔记
看網上各種自動更新方法,最后自己找了個比較簡單的,在此做個筆記。
服務器上的共享盤里存放生成的可執行文件和XML格式的配置:
<?xml version="1.0" encoding="utf-8"?>
<AutoUpdate>
<version>PackingBarcodeValidation2.0</version>
<downloadURL>//ip/PackingBarcodeValidation2.0.exe</downloadURL>
</AutoUpdate>
直接上代碼:
'update revision
Dim updateXMLURL As String = "//ip/revision.xml"
Dim version As String = Nothing
Dim downloadURL As String = Nothing
If System.IO.File.Exists(updateXMLURL) Then
Dim xmldoc As New XmlDocument()
xmldoc.Load(updateXMLURL)
'獲取節點列表
Dim topM As XmlNodeList = xmldoc.SelectNodes("//AutoUpdate")
For Each element As XmlElement In topM
version = element.GetElementsByTagName("version")(0).InnerText
downloadURL = element.GetElementsByTagName("downloadURL")(0).InnerText
Next
If version <> Me.Text And System.IO.File.Exists(downloadURL) Then
Me.DownloadFile(downloadURL, "./" & version & ".exe", Me.ProgressBar1)
MsgBox("系統升級成功,請使用新的系統" & version & ".exe")
Me.Close()
End If
End If
下載方法代碼:
''' <summary>
''' c#,.net 下載文件
''' </summary>
''' <param name="URL">下載文件地址</param>
'''
''' <param name="Filename">下載后的存放地址</param>
''' <param name="Prog">用于顯示的進度條</param>
'''
Public Sub DownloadFile(ByVal URL As String, ByVal filename As String, ByVal prog As System.Windows.Forms.ProgressBar)
Dim percent As Single = 0
Try
URL = "http:" & URL
Dim Myrq As System.Net.HttpWebRequest = DirectCast(System.Net.HttpWebRequest.Create(URL), System.Net.HttpWebRequest)
Dim myrp As System.Net.HttpWebResponse = DirectCast(Myrq.GetResponse(), System.Net.HttpWebResponse)
Dim totalBytes As Long = myrp.ContentLength
If prog IsNot Nothing Then
prog.Maximum = CInt(totalBytes)
End If
Dim st As System.IO.Stream = myrp.GetResponseStream()
Dim so As System.IO.Stream = New System.IO.FileStream(filename, System.IO.FileMode.Create)
Dim totalDownloadedByte As Long = 0
Dim by As Byte() = New Byte(1023) {}
Dim osize As Integer = st.Read(by, 0, CInt(by.Length))
While osize > 0
totalDownloadedByte = osize + totalDownloadedByte
System.Windows.Forms.Application.DoEvents()
so.Write(by, 0, osize)
If prog IsNot Nothing Then
prog.Value = CInt(totalDownloadedByte)
End If
osize = st.Read(by, 0, CInt(by.Length))
percent = CSng(totalDownloadedByte) / CSng(totalBytes) * 100
'label1.Text = "當前補丁下載進度" & percent.ToString() & "%"
'必須加注這句代碼,否則label1將因為循環執行太快而來不及顯示信息
System.Windows.Forms.Application.DoEvents()
End While
so.Close()
st.Close()
Catch generatedExceptionName As System.Exception
Throw
End Try
End Sub
在界面上添加了一個進度條。
?
?
?
轉載于:https://www.cnblogs.com/lsdxiaoben/p/winform_update.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的VB winform自动更新 笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第9课_2_dbsoft安装
- 下一篇: sharepoint2010网站根据权限