Вне браузера Silverlight приложение - как настроить автоматическое обновление? - PullRequest
3 голосов
/ 17 декабря 2009

Мне интересно, как настроить мой проект Silverlight для включения автоматических обновлений для приложения вне браузера.

Я добавил некоторый код в app.xaml.cs (см. Ниже), перестроил приложение, установил его как вне браузера, изменил versionionfo в файлеblyblyinfo.cs, перестроил, запустил снова, но, к сожалению, обновления не произошло. Я все еще что-то упускаю?

    public App()
    {
        this.Startup += this.Application_Startup;
        this.Exit += this.Application_Exit;
        this.UnhandledException += this.Application_UnhandledException;

        InitializeComponent();

        if (Application.Current.IsRunningOutOfBrowser)
        {
            App.Current.CheckAndDownloadUpdateCompleted +=
                new CheckAndDownloadUpdateCompletedEventHandler(App_CheckAndDownloadUpdateCompleted);
            App.Current.CheckAndDownloadUpdateAsync();
        }
    }

    void App_CheckAndDownloadUpdateCompleted(object sender, CheckAndDownloadUpdateCompletedEventArgs e)
    {
        if (e.Error == null && e.UpdateAvailable)
        {
            MessageBox.Show("Application updated, please restart to apply changes.");
        }
    }

EDIT

Бонусный вопрос:

Как приложение определяет наличие обновления? Из Assemblyinfo.cs? Где-то в манифестах?

EDIT

Кто-нибудь может мне объяснить, ПОЧЕМУ IsRunningOutOfBrowser всегда возвращает ЛОЖЬ, даже если приложение запускается с ярлыка на рабочем столе?

Ответы [ 2 ]

2 голосов
/ 22 декабря 2009

Благодаря форуму Silvelright, есть решение.

Свойство IsOutOfBrowser нельзя использовать в конструкторе. Время начала работы - событие запуска приложения.

0 голосов
/ 17 декабря 2009

Убедитесь, что веб-сервер работает, чтобы клиент мог подключиться к серверу и проверить наличие обновлений. Вы также можете проверить свойство Error, чтобы увидеть, есть ли какие-либо исключения.

...