从应用程序内部检查更新

时间:2013-09-17 17:29:01

标签: c# .net windows-phone-7

朋友们,我正在关注此link以实现从app内部检查更新。但是我没有实现它,我已经扩展了请求,我认为其内容存在问题。

问题是它无法获得更新版本。

var request = WebRequest.Create(url); // here i checked it on applying breakpoints 

private Task<Version> GetUpdatedVersion()
{
    var cultureInfoName = CultureInfo.CurrentUICulture.Name;
var url = string.Format("http://marketplaceedgeservice.windowsphone.com/v8/catalog/apps/{0}?os={1}&cc={2}&oc=&lang={3}​",
    GetManifestAttributeValue("ProductID"),
    Environment.OSVersion.Version,
    cultureInfoName.Substring(cultureInfoName.Length - 2).ToUpperInvariant(),
    cultureInfoName);

var request = WebRequest.Create(url);

return Task.Factory.FromAsync(request.BeginGetResponse, result =>
{
    var response = (HttpWebResponse)request.EndGetResponse(result);

    if (response.StatusCode != HttpStatusCode.OK)
    {
        throw new WebException("Http Error: " + response.StatusCode);
    }

    using (var outputStream = response.GetResponseStream())
    {
        using (var reader = XmlReader.Create(outputStream))
        {
            reader.MoveToContent();

            var aNamespace = reader.LookupNamespace("a");

            reader.ReadToFollowing("entry", aNamespace);

            reader.ReadToDescendant("version");

            return new Version(reader.ReadElementContentAsString());
        }
    }
}, null);

}

enter image description here

1 个答案:

答案 0 :(得分:2)

WebRequest的异构扩展中有一些构建,无需构建自己的。您可以直接使用WebResponse response= await request.GetResponseAsync();
关于真正的问题,我在调试屏幕截图和couldn't find any app coresponding to this app id中使用app id检查了商店,因此这个id可能是用于开发的应用ID,而不是商店中应用的真实应用ID,因为它工作它需要是真正的商店ID(当你真正将应用程序发布到商店它应该工作,因为商店将自动更新应用程序ID)。如果您还没有将应用程序发布到商店,那么测试最好的可能只是使用另一个应用程序的应用程序ID进行测试。
更新:
显然这是应用程序ID,这是问题。 (就像我说它需要是商店应用中已发布应用的应用ID而不是本地开发应用)