WPF MVVM检查更新,通知用户,关闭应用程序,安装更新,重新启动应用程序

时间:2017-12-01 15:21:46

标签: c# wpf mvvm

我正在寻找一种检查更新的方法,例如每5分钟一次,如果有更新,请通知用户有关更新,关闭应用程序,安装更新和重新启动应用程序的信息。我到处寻找,但找不到合适的答案。

2 个答案:

答案 0 :(得分:1)

轻松的方式

ClickOnce Deployment正如已经建议的那样

困难之路

为此,您需要:

  • 服务器公开任何可用于获取最新版本的API(例如,运行apache2的简单linux和包含版本号和链接的纯文本文件)
  • 代码下载新二进制文件
  • 代码安装更新(自行完成(请记住,您可能需要管理员权限)或使用安装程序exe)

服务器部分显然是你的东西,但文件可能如下所示:

    <ListView x:Name="listViewNobMudYrdCalendar">
        <ListView.ItemTemplate>
            <DataTemplate x:DataType="Models:MdYrdNobetGunu">
                <StackPanel>
                    <TextBlock Text="{x:Bind nöbetçi.AdSoyad}"/>
                </StackPanel>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

现在要获取此文件,请使用 1.2.456.78:http://MyServer.tl/path/to/binary.ext

System.Net.Http.HttpClient

现在您可以将当前的二进制版本与最新版本进行比较

using (var client = new HttpClient())
using (var response = await client.GetAsync(@"http://MyServer.tl/path/to/version.info"))
{
    [Code handling the version info file]
}

确认您已过期后,只需以您喜欢的任何方式显示客户端(尽量避免使用消息框,因为这会让很多用户烦恼)

如果您想下载更新,请再次使用var extractedVersion = Version.Parse(extractedNewVersionString) var currentVersion = typeof(AnyTypeInYourExeProject).Assembly.GetExecutingAssembly().GetName().Version if (extractedVersion > currentVersion) { [Continue with downloading] }

System.Net.Http.HttpClient

之后你必须简单地启动安装程序可执行文件或启动时请求管理员权限的控制台(alt。使用单独的可执行文件)

希望我能帮忙

答案 1 :(得分:-1)

您可以使用equal to来实现此目标。