您如何判断ClickOnce应用程序是否刚刚更新?

时间:2010-01-15 15:07:38

标签: clickonce

在我的ClickOnce c#应用程序中,如何判断用户是否刚刚更新了应用程序?我想提供在用户下载更新后显示发行说明或更改日志。

我知道如何以编程方式(拼写?)检测更新是否可用,并手动执行更新。我可以显示更改日志或发行说明,但是如果可能的话,我希望在更新之后选择。我的Googlefu让我失望了。

2 个答案:

答案 0 :(得分:3)

我不确定是否存在此框架机制。

但您可以自己手动处理此问题。如果您或发布向导正在为每个构建更新版本号,则可以存储应用程序上次在本地计算机上运行时的版本号(Registry / AppData / Whatever),然后将其与当前版本#进行比较。如果版本#不匹配,您可以设置本地“上次运行版本”,然后显示发行说明。

您可以使用以下内容获取应用版本:

private string version
{
    get
    {
        System.Reflection.Assembly _assemblyInfo = System.Reflection.Assembly.GetExecutingAssembly();

        string ourVersion = string.Empty;

        if (System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed)
        {

            ourVersion = ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString();
        }
        else
        {
            if (_assemblyInfo != null)
            {
                ourVersion = _assemblyInfo.GetName().Version.ToString();
            }
        }

        return ourVersion;
    }
}

答案 1 :(得分:0)

我知道它的旧版本,但您可以使用CheckForUpdate()方法:

using System.Deployment.Application;

public bool IsUpdateAvailable()
{
    if (!ApplicationDeployment.IsNetworkDeployed) return false;

    return ApplicationDeployment.CurrentDeployment.CheckForUpdate();         
}