永发信息网

winform 程序怎么样实现自动升级

答案:2  悬赏:50  手机版
解决时间 2021-04-30 08:32

目前写一个winform程序,现在要实现自动更新的功能,但是网上很多答案都不好用,有没有一种直接用的啊?比如一个dll文件什么的,希望各位大侠帮帮忙!

 

 

最佳答案

 看看这段代码。。。

private void btnUpdate_Click(object sender, EventArgs e)
    {
    try
    {
    WebClient webClient = new WebClient();
    webClient.DownloadFile("http://localhost/Web/update.txt", "update.txt");

    StreamReader sr = new StreamReader("update.txt");

    List<UpdateFile> files = new List<UpdateFile>();

    string version = sr.ReadLine();
    //将应用程序更名拷贝
    File.Copy(@"MyGame.exe", "MyGame_old.exe", true);
    //反射备份的应用程序 得到版本号
    Assembly assembly = Assembly.LoadFile(Application.StartupPath + @"\MyGame_old.exe");
    string currentVersion = assembly.GetName().Version.ToString();
    assembly = null;
    //如果版本号不一致 升级程序
    if (currentVersion != version)
    {
    //读出有几个文件需要更新
    int newFileCount = int.Parse(sr.ReadLine());

    for (int i = 0; i < newFileCount; i++)
    {
    //取得文件下载路径和文件名
    UpdateFile updateFile = new UpdateFile();
    updateFile.FileName = sr.ReadLine();
    updateFile.DownLoadPath = sr.ReadLine();
    files.Add(updateFile);
    }

    foreach (UpdateFile file in files)
    {
    WebClient webClientNew = new WebClient();
    //更新每个文件 - 注意web服务器的配置
    webClientNew.DownloadFile(file.DownLoadPath, file.FileName);
    }
    MessageBox.Show("升级成功!");
    }
    else
    {
    MessageBox.Show("您的游戏已经是最新版本!");
    }
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.ToString());
    }
    }

/// <summary>
    /// 保存要更新的文件名和下载路径
    /// </summary>
    public class UpdateFile
    {
    private string fileName;
    public string FileName
    {
    get { return fileName; }
    set { fileName = value; }
    }
    private string downLoadPath;
    public string DownLoadPath
    {
    get { return downLoadPath; }
    set { downLoadPath = value; }
    }

    }

全部回答
我曾经用过FTP的升级方式,程序写一个用来检测是否有FTP上的文件相同,如果不相同,那么利用FTP来下载,FTP下载的代码网上有
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么听着他喜欢的歌,确那么想哭?
舒张压高(即低压高)应选用何种药物?
我想买台笔记本大家推荐一下
怎样把这个图片变成圆形
奥特曼格斗进化3 奇迹戴拿必杀技
真三国无双OL 金牌爪子
黟县森林公安局这个地址在什么地方,我要处理
请问能帮我写一个按键精灵8的后台脚本吗?
许嵩的个人资料!
如何获取一些产品评测、检验证书?
怎么在电脑上绘图,怎样使用画图工具在电脑上
科学在我身边手抄报怎么做?
鬼剑士怎么转职成剑魂,何等级才能转
有玩天龙八部2 的人吗 进来看看啊 谢谢
想买个带的起独立显卡的电源加个机箱 200快够
推荐资讯
柯南里是那一集?
上了高中应注意什么?
买东西一定要有旺旺吗?
人为何喝水
为什么滔滔在注册时总是显示系统繁忙?
宁德市烟草公司寿宁分公司地址有知道的么?有
主板自带的集成显卡怎么分享内存
不知如何解决眼袋问题?平时要注意什么?谢谢
什么是什么,谁知道羊蝎子是羊的什么部位?
自由幻想我想用270J收个好火鸟
天下2奕剑职业加什么点比较好?
关于诛仙2的一系列问题
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?