请问,ClickOnce做的更新程序,放在server上,设置了程序运行前检查更新,但是,为什么在有的client上,更新不到新版本,还是继续就版本?
但是,在有的client上,更新到了新版本。是不是,client端的windows需要有什么设置?比如:cache,缓存,etc.另外,请问ClickOnce检查server和client的程序版本差异并下载的原理是什么?server和client的程序版本信息各放在哪里的?什么文件中?他是怎么比较的?如果比较版本的过程中出了问题,他会不会skip,直接运行本地的老版本?怎么解决上面的问题???
谢谢!!!!

解决方案 »

  1.   

    感觉应该不是ClickOnce版本比较的问题,应该是用户系统的问题,比如网络设置,cache方面的。
    帮楼主顶一下。
      

  2.   

    参考
    http://www.diybl.com/course/4_webprogram/asp.net/netjs/2007116/84726.html
      

  3.   

    我之前也用ClickOnce做在线更新,感觉不是很稳定,而且过程比较繁琐
    我推荐你使用web Service通过Client端的主程序版本号与Server端的xml版本号进行比对
    给你一个版本比对的代码示例    [WebMethod(Description = "取得更新版本")]
        public string GetVer()
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(Server.MapPath("update/update.xml"));
            XmlElement root = doc.DocumentElement;
            return root.SelectSingleNode("version").InnerText;
        }
      

  4.   

    忘了说明了,这个返回的是server上的xml里记录的版本号,与本地的程序执行文件版本进行比对 if (Application.ProductVersion.CompareTo(nVer) < 0)
                {
                    DialogResult result = MessageBox.Show("发现新版本,是否下载更新文件?", "提示信息", MessageBoxButtons.YesNo);
                    if (result == DialogResult.No) return;
                    Process.Start("Update.exe");
                }