首先必须要有一个服务提供升级推送查询
// Code to execute when the application is launching (eg, from Start)
// This code will not execute when the application is reactivated
private void Application_Launching(object sender, LaunchingEventArgs e)
{
updateServiceReference.UpdateSoapClient usp = new updateServiceReference.UpdateSoapClient();
usp.CheckMobileUpdateCompleted += new EventHandler<updateServiceReference.CheckMobileUpdateCompletedEventArgs>(usp_CheckMobileUpdateCompleted);
usp.CheckMobileUpdateAsync(1);
}
void usp_CheckMobileUpdateCompleted(object sender, updateServiceReference.CheckMobileUpdateCompletedEventArgs e)
{
if (e.Result == null)
{
return;
}
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
//string version = System.Reflection.Assembly.GetExecutingAssembly().FullName;
//获取程序集的版本号,然后去掉.得到数字对比大小
string version = assembly.GetCustomAttributes(false).OfType<System.Reflection.AssemblyFileVersionAttribute>().First().Version;
if (int.Parse(e.Result.Ver) > int.Parse(version.Replace(".", "")))
{
if (MessageBox.Show(e.Result.UpdateLog, "升级提示", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
{
Microsoft.Phone.Tasks.MarketplaceDetailTask ms = new Microsoft.Phone.Tasks.MarketplaceDetailTask();
ms.ContentType = Microsoft.Phone.Tasks.MarketplaceContentType.Applications;
ms.ContentIdentifier = e.Result.DownPath;
ms.Show();
}
}
}