Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从应用程序本身内部检查更新_C#_.net_Windows Phone 7 - Fatal编程技术网

C# 从应用程序本身内部检查更新

C# 从应用程序本身内部检查更新,c#,.net,windows-phone-7,C#,.net,Windows Phone 7,您好,朋友们,我正在按照这个步骤执行应用程序内部的更新检查。但我没有执行它,我已经扩展了请求,我认为它的内容存在问题 问题是它无法获得更新版本 var request = WebRequest.Create(url); // here i checked it on applying breakpoints private Task<Version> GetUpdatedVersion() { var cultureInfoName = CultureInfo.Curre

您好,朋友们,我正在按照这个步骤执行应用程序内部的更新检查。但我没有执行它,我已经扩展了请求,我认为它的内容存在问题

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

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);
var request=WebRequest.Create(url);//在这里,我在应用断点时检查了它
私有任务GetUpdatedVersion()
{
var CultureInfo Name=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(),
文化信息名);
var request=WebRequest.Create(url);
返回Task.Factory.fromsync(request.BeginGetResponse,result=>
{
var response=(HttpWebResponse)request.EndGetResponse(result);
if(response.StatusCode!=HttpStatusCode.OK)
{
抛出新的WebException(“Http错误:+response.StatusCode”);
}
使用(var outputStream=response.GetResponseStream())
{
使用(var reader=XmlReader.Create(outputStream))
{
reader.MoveToContent();
var aNamespace=reader.LookupNamespace(“a”);
reader.ReadToFollowing(“条目”,aNamespace);
reader.ReadToDescendant(“版本”);
返回新版本(reader.ReadElementContentAsString());
}
}
},空);
}


WebRequest有一些内置异步扩展,无需构建自己的扩展。您可以直接使用
WebResponse-response=wait-request.GetResponseAsync();

关于真正的问题,我在调试屏幕截图中用app id检查了商店,因此这个id可能是用于开发的app id,而不是商店中app的真实app id,为了让它工作,它需要是真实的商店id(当你真的将应用发布到应用商店时,它应该可以工作,因为应用商店将自动更新应用id)。如果你还没有将应用发布到应用商店,最好的测试方法可能是使用另一个应用的应用id进行测试。
更新:

显然是应用程序id出了问题。(就像我说的,它需要是商店应用程序中已发布应用程序的应用程序id,而不是本地开发应用程序的应用程序id)

你忘了问一个问题。为什么不让它成为一个同步过程并进行调试呢?我已经更新了这个问题..检查它..并且我必须使这个更新异步..这很好,但是让它成为一个同步过程来让它工作并使它更容易调试,让你一步一步地完成它吗?为什么不让它成为一个同步过程呢async何时实际工作?我已经尝试过了..Arran..但最终它没有得到更新版本我尝试过使用应用id为app on store..的版本,并且在添加您给定的名称空间时出现错误..名称空间中不存在线程..您正在使用async bcl nuget包支持wp7上的任务,对吗?或者您正在使用async bcl nuget包支持wp7上的任务在windows phone 8上?(你的帖子被标记为windows phone 7)我的应用程序将针对两个平台。实际上主要问题是。链接实际上说它适用于两个平台。并且工作正常。那么我为什么会遇到问题?我刚刚用商店随机应用程序的应用程序id(“8bc8ee8a-03eb-42e9-9a5f-4DC6505D430”)测试了你的代码而且它工作正常,所以它是一个带有你正在使用的应用程序id的pb。你完全按照链接进行了吗?