原文:
自動更新(自動公升級)元件分享
自從接觸安裝部署以來就有軟體公升級的需求,最簡單的就是clickonce,但無法做到深入控制,本寄希望於wix可以自己實現,但現在還沒有找到例子。然後才自己實現。 要宣告一下,這是在聖殿騎士autoupdater基礎上改動過來的。基於他分享的精神,我也繼續分享。我主要做了以下改動。
2.加入更新提示。
3.做了一些異常處理,增加了介面方法。
4.加入了**。
按照國際慣例,先上圖:
原理簡介
web伺服器端的配置檔案:
autoupdater首先會去獲取這個配置檔案,看updatefiles中有無更新檔案。
客服端的配置檔案:
然後和本地的updatefilelist中的檔案進行比對,遠端版本新就提示更新。
方法呼叫
1.iautoupdater 介面
public上面的介面在autoupdater.cs中實現。檢測安裝版本主要是檢測登錄檔,是安裝檔案中決定的。也就是讀取registrykey和registryvalueinte***ce
iautoupdater
//////
rolls the back.
/// void
rollback();
//////
checks the registry.檢查安裝版本
/// ///
system.string.
string
checkregistry();
//////
determines whether [has new version].
/// ///
true
if [has new version]; otherwise,
false
.updateresulttype hasnewversion();
//////
runs the installer.直接安裝
/// void
runinstaller();
//////
gets the loaded version.
/// ///
system.string.
string
getloadedversion();
//////
gets the size of the loaded.
/// ///
system.string.
string
getloadedsize();
}
public自動安裝也是直接去執行,bin目錄下uploadfiles資料夾中的檔案string
checkregistry()
return
version;
}
///其他方法就不一一例舉了。大家可以去看原始碼。///
/// public
void
runinstaller()
else
}
2.呼叫
using system;
using system.windows.forms;
using autoupdater.autoupdatehelper;
public參考部落格:partial
class
form1 : form
private
iautoupdater _autoupdater;
sunisoft.irisskin.skinengine se;//**
private
void form1_load(object
sender, eventargs e);}
//////
讀取本地config,安裝版本資訊
/// private
void
checklocal()
private
void
checkupdate()
if (result ==updateresulttype.local)
}if (result ==updateresulttype.none)
}//////
初始化
/// private
void
iniautoupdater()
private
void scadanotifyicon_mouseclick(object
sender, mouseeventargs e)
else
}private
void opentoolstripmenuitem_click(object
sender, eventargs e)
private
void checkupdatebt_click(object
sender, eventargs e)
// 觸發安裝
private
void updatebt_click(object
sender, eventargs e)
private
void exittoolstripmenuitem_click(object
sender, eventargs e)
private
void updatetoolstripmenuitem_click(object
sender, eventargs e)
private
void hidetoolstripmenuitem_click(object
sender, eventargs e)
private
void form1_formclosing(object
sender, formclosingeventargs e)
}
希望對你有幫助~
(弱弱的感嘆下,的流量不如以前了。能像知乎、雪球、infoq那樣的社群就好了,不知道大家是否有新的去處)
自動更新元件分享
1.摘要 2.本文提綱 3.為什麼不使用clickonce 4.簡要介紹 5.專案中如何使用 6.具體效果 8.總結 在前面的摘要中我們簡單介紹了自動更新功能的重要性,在這一小節裡我們來談一下為什麼不使用微軟給我們提供的自動更新元件clickonce,大家都知道clickonce給我們提供了很多功能...
自動更新元件分享
前兩天在部落格上發布了一篇英文的自動更新元件文章 1.摘要 2.本文提綱 3.為什麼不使用clickonce 4.簡要介紹 5.專案中如何使用 6.具體效果 8.總結 在前面的摘要中我們簡單介紹了自動更新功能的重要性,在這一小節裡我們來談一下為什麼不使用微軟給我們提供的自動更新元件clickonce...
自動更新元件分享
前兩天在部落格上發布了一篇英文的自動更新元件文章 1.摘要 2.本文提綱 3.為什麼不使用clickonce 4.簡要介紹 5.專案中如何使用 6.具體效果 8.總結 在前面的摘要中我們簡單介紹了自動更新功能的重要性,在這一小節裡我們來談一下為什麼不使用微軟給我們提供的自動更新元件clickonce...