Как узнать, что приложение ClickOnce было только что обновлено? - PullRequest
3 голосов
/ 15 января 2010

В моем приложении ClickOnce c # как узнать, обновил ли пользователь приложение? Я хотел бы предложить показать примечания к выпуску или журнал изменений после того, как пользователь загрузил обновление.

Я знаю, как я могу программно (правописание?) Определить, доступно ли обновление, и выполнить обновление вручную. Тогда я мог бы показать список изменений или заметки о выпуске, но я бы хотел, чтобы это было возможно после обновления, если это возможно. Мой Googlefu подвел меня.

Ответы [ 2 ]

3 голосов
/ 15 января 2010

Я не уверен, существует ли рамочный механизм для этого.

Но вы можете сами справиться с этим вручную. Если вы или мастер публикации обновляете ваш Version # для каждой сборки, вы можете сохранить Version # с момента последнего запуска приложения на компьютере локально (Registry / AppData / Wh независимо) и затем сравнить его с текущей версией #. Если версии # не совпадают, вы можете установить локальную «последнюю версию» и затем отобразить примечания к выпуску.

Вы можете получить версию для приложения, используя что-то вроде:

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;
    }
}
0 голосов
/ 14 марта 2017

Я знаю его старый, но вы можете использовать CheckForUpdate() метод:

using System.Deployment.Application;

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

    return ApplicationDeployment.CurrentDeployment.CheckForUpdate();         
}
...