Я создал приложение вне браузера silverlight , которое я хочу автоматически обновлять каждый раз, когда новый файл .xap загружается в сервер.
Когда пользователь щелкает правой кнопкой мыши приложение и нажимает Обновления , по умолчанию устанавливается значение " Проверить наличие обновлений, но позвольте мне выбрать, загружать ли и устанавливать их ":
альтернативный текст http://www.deviantsart.com/upload/uhjdal.png
Это наводит меня на мысль, что мое приложение Silverlight возможно автоматически обнаруживать , если на сервере присутствует новый файл .xap, и если таковой имеется, клиент Silverlight будет автоматически спрашивает пользователя, хочет ли он его установить.
-
private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new BaseApp();
if (Application.Current.IsRunningOutOfBrowser)
{
Application.Current.CheckAndDownloadUpdateAsync();
}
}
и обновите файл .xap, приложение Silverlight ничего не делает .
- Эта информация позволила мне проверить, есть ли обновление, и если да, сказать пользователю перезапустить приложение, но когда он перезапускает приложение, ничего не происходит :
-
private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new BaseApp();
if (Application.Current.IsRunningOutOfBrowser)
{
Application.Current.CheckAndDownloadUpdateAsync();
Application.Current.CheckAndDownloadUpdateCompleted += new CheckAndDownloadUpdateCompletedEventHandler(Current_CheckAndDownloadUpdateCompleted);
}
}
void Current_CheckAndDownloadUpdateCompleted(object sender, CheckAndDownloadUpdateCompletedEventArgs e)
{
if (e.UpdateAvailable)
{
MessageBox.Show("An application update has been downloaded. " +
"Restart the application to run the new version.");
}
else if (e.Error != null &&
e.Error is PlatformNotSupportedException)
{
MessageBox.Show("An application update is available, " +
"but it requires a new version of Silverlight. " +
"Visit the application home page to upgrade.");
}
else
{
//no new version available
}
}
Как выполнить проверку приложения Silverlight при каждом его запуске, если есть новый файл .xap и, если он есть, передать управление клиенту Silverlight, чтобы спросить пользователя, хочет ли он его загрузить , как видно из приведенного выше диалога возможно?