C# 多版本更新程序

Posted

技术标签:

【中文标题】C# 多版本更新程序【英文标题】:C# multiple versions updater 【发布时间】:2013-05-28 05:46:37 【问题描述】:

我正在开发一个包含两个名为 Updater 和 MainApp 的应用程序的 Updater 应用程序。 Updater App 使用 Web 服务来检查更新并更新 MainApp。单击更新按钮时,我可以实现更新,以进行下一次更新。

问题在于,如果有多个版本的更新可用,应用程序应该能够按顺序将自身更新到这些版本,并且最终应该通过单击更新按钮获得最新版本。我的意思是说用户不应该每次更新都点击更新按钮,一次更新点击应该将应用程序更新到其最终版本

例如,如果当前版本是 1.0.0.0,可用版本是 1.0.2.0、2.0.0.0、3.0.0.5。然后应用程序应将自身更新到 3.0.0.5,而不会错过更新 1.0.2.0 和 2.0.0.0。

请分享你的想法,

谢谢

卫生巾

【问题讨论】:

更新到下一个版本然后重新运行检查怎么​​样? @Vogel612:这可行,但用户将不得不再次单击检查更新。目标是直接将应用程序更新到最新版本,不会让用户烦恼,也不会错过任何更新。 你不明白。我在答案中阐述了我的想法 【参考方案1】:

据我所知你有一些方法

public void checkForUpdates(object sender, EventArgs e)
    //Check if updates are available and call Update(string version);

此方法检查更新,如果有可用的更新。 我建议你让它调用另一个函数来更新到下一个版本并重新检查:

public void update(string version)
    //Update to next version (and only to next version)
    //and then call check again, so you will update to the next and so on, 
    //till you are on newest version
    checkForUpdates(null, null);

无论如何,您都需要“一个接一个地更新每个版本”,所以这是保持现实性和易于编程以及可读性的最简单方法

【讨论】:

【参考方案2】:

您可以点击按钮查看最新版本,然后对大于您当前版本且小于或等于最新版本的可用更新进行排序,并进行多次更新。

【讨论】:

以上是关于C# 多版本更新程序的主要内容,如果未能解决你的问题,请参考以下文章

C#实现程序的版本升级更新

如何使用 C# 驱动程序更新 MongoDB 数组中的子文档

VS2008制作安装包关于覆盖安装的问题(C#)

为使用 C# 和 MySQL 开发的应用程序向客户提供软件更新的方式

C#开发之问题汇总-NetFramework的版本选择

VisualStudio版本更新了这么多,为啥不把附带的webbrowser控件升级下,搞个支持chrome内核的?