【文件属性】:
文件名称:SimpAutoUpdater c#自动升级模块源码
文件大小:194KB
文件格式:7Z
更新时间:2016-07-09 03:44:53
SimpAuto Updater c#自动升级 模块源码 方便集成程序
SimpAutoUpdater c#自动升级 模块源码 可以集成到自己程序:
首先在VS中为当前的主程序项目添加引用,引用“客户端”中的“SimpleUpdater.exe”。
在VS中,点开“解决方案管理器”中相应项目的“属性”节点,打开 AssemblyInfo.cs 文件,在最下面添加上一行自动更新声明:
//--添加这行标记表示支持自动更新, 后面的网址为自动更新的根目录.
[assembly: FSLib.App.SimpleUpdater.Updateable("http://ls.com/update.xml")]
这步是必须的,否则请求检查更新时会抛出异常;代码中的网址即上面提到的能访问到xml文件的网址。
如果您希望更加简单的使用而不用去加这样的属性,或者您想程序运行的时候自定义,您可以通过下列方式的任何一种方式取代上面的属性声明:
使用 FSLib.App.SimpleUpdater.Updater.CheckUpdateSimple("升级网址") 的重载方法。这个重载方法允许你传入一个升级包的地址;
在检查前手动设置 FSLib.App.SimpleUpdater.Updater.UpdateUrl 属性。这是一个静态属性,也就是说,您并不需要创建 FSLib.App.SimpleUpdater.Updater.UpdateUrl 的对象实例就可以修改它。
无论使用哪种方式,请确保在检查更新前,地址已经设置。
到这里,准备工作即告完成,为代码添加上检查更新的操作即可。
static class Program
{
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var updater = FSLib.App.SimpleUpdater.Updater.Instance;
//当检查发生错误时,这个事件会触发
updater.Error += new EventHandler(updater_Error);
//没有找到更新的事件
updater.NoUpdatesFound += new EventHandler(updater_NoUpdatesFound);
//找到更新的事件.但在此实例中,找到更新会自动进行处理,所以这里并不需要操作
//updater.UpdatesFound += new EventHandler(updater_UpdatesFound);
//开始检查更新-这是最简单的模式.请现在 assemblyInfo.cs 中配置更新地址,参见对应的文件.
FSLib.App.SimpleUpdater.Updater.CheckUpdateSimple();
/*
* 如果您希望更加简单的使用而不用去加这样的属性,或者您想程序运行的时候自定义,您可以通过下列方式的任何一种方式取代上面的属性声明:
* 使用Updater.CheckUpdateSimple 的重载方法。这个重载方法允许你传入一个升级包的地址;
* 在检查前手动设置 FSLib.App.SimpleUpdater.Updater.UpdateUrl 属性。这是一个静态属性,也就是说,您并不需要创建 FSLib.App.SimpleUpdater.Updater.UpdateUrl 的对象实例就可以修改它。
*/
FSLib.App.SimpleUpdater.Updater.CheckUpdateSimple("升级网址");
Application.Run(new Form1());
}
static void updater_UpdatesFound(object sender, EventArgs e)
{
}
static void updater_NoUpdatesFound(object sender, EventArgs e)
{
System.Windows.Forms.MessageBox.Show("没有找到更新");
}
static void updater_Error(object sender, EventArgs e)
{
var updater = sender as FSLib.App.SimpleUpdater.Updater;
System.Windows.Forms.MessageBox.Show(updater.Exception.ToString());
}
}