我想知道如何设置我的Silverlight项目以启用浏览器外应用程序的自动更新。
我在app.xaml.cs中添加了一些代码(见下文),重建应用程序,安装为浏览器外,在asseblyinfo.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.");
}
}
修改
奖金问题:
App如何检测到有更新?来自assemblyinfo.cs?在某些地方出现?
修改
有人可以解释一下,即使App从桌面快捷方式运行,为什么IsRunningOutOfBrowser
总是返回FALSE?
答案 0 :(得分:2)
感谢Silvelright论坛,有一个解决方案。
IsOutOfBrowser属性不能在构造函数中使用。它开始工作的时间是应用程序启动事件。
答案 1 :(得分:0)
确保Web服务器正在运行,以便客户端可以连接到服务器并检查更新。您可能还需要检查Error属性以查看是否存在任何异常。