C# 单击一次更新之前和之后

C# 单击一次更新之前和之后,c#,wpf,C#,Wpf,目前,我的应用程序在应用程序启动前完全更新。如果有新版本,将出现提示。我的一些客户端不会重新启动程序,他们只是注销并让它在后台运行。如何设置clickonce以在应用程序运行之前更新程序,并每4小时检查更新 我可以在应用程序更新中看到两个选项—应用程序启动后和应用程序启动前。但我正在寻找两者兼而有之的东西。单击一次是没有办法的 我建议您在应用程序中创建一个后台线程,检查是否有新版本的应用程序…单击一次无法完成此操作 我建议您在应用程序中创建一个后台线程,检查是否有新版本的应用程序…我已通过以下方

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


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

单击一次是没有办法的


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

单击一次无法完成此操作


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

我已通过以下方式实现此功能:

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;
}

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

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;
}

您知道软件是否必须重新启动吗?您知道软件是否必须重新启动吗?