具有更新前后的ClickOnce

时间:2015-12-11 15:04:13

标签: c# wpf

目前我的应用程序在应用程序启动之前完全更新。如果有新版本,则会出现提示。我的一些客户不会重新启动程序,他们只是注销并让它在后台运行。如何设置clickonce以在应用程序运行之前更新程序并每4小时检查一次更新。

我可以看到应用程序更新中有两个选项 - 应用程序启动后和应用程序启动之前。但我正在寻找能够兼顾两者的东西。

2 个答案:

答案 0 :(得分:3)

我通过以下方式实现了这个:

public void StartSearchForUpdates()
{
    if(!ApplicationDeployment.IsNetworkDeployed)
    {
        return;
    }
    bool updateAvailable = false;
    Task.Run(async () =>
    {
        while (!updateAvailable)
        {
            await Task.Delay(TimeSpan.FromHours(4));
            updateAvailable = ApplicationDeployment.CurrentDeployment.CheckForUpdate();
            if (UpdateAvailable)
            {
                ApplicationDeployment.CurrentDeployment.UpdateAsync();
                ApplicationDeployment.CurrentDeployment.UpdateCompleted += OnUpdatedCompleted;
            }
        }
    });
}

private void OnUpdatedCompleted(object sender, AsyncCompletedEventArgs e)
{
    AvailableVersion = ApplicationDeployment.CurrentDeployment.UpdatedVersion;
}

答案 1 :(得分:2)

单击一次就无法做到。

我建议你在你的应用中创建一个后台线程,检查是否有新版本的应用...