Windows phone 7 WP7应用程序版本

Windows phone 7 WP7应用程序版本,windows-phone-7,manifest,Windows Phone 7,Manifest,Windows Phone 7应用程序似乎有两个版本号位置-一个位于AssemblyInfo.cs(通过AssemblyVersion/AssemblyFileVersion属性),另一个是WMAppManifest.xml。这两者似乎不相关——改变一个并不影响另一个。市场似乎使用了清单中的一个——有人能确认一下吗 真正的问题是-如何以编程方式从清单中检索该清单以显示在“关于”屏幕上?正在使用WmAppManifest.xml编号。前两位数字与Marketplace相关(在您进行更新时会进行检查

Windows Phone 7应用程序似乎有两个版本号位置-一个位于AssemblyInfo.cs(通过
AssemblyVersion
/
AssemblyFileVersion
属性),另一个是WMAppManifest.xml。这两者似乎不相关——改变一个并不影响另一个。市场似乎使用了清单中的一个——有人能确认一下吗


真正的问题是-如何以编程方式从清单中检索该清单以显示在“关于”屏幕上?

正在使用WmAppManifest.xml编号。前两位数字与Marketplace相关(在您进行更新时会进行检查),后两位数字用于您的内部使用

这是一个常规XML文件,将其作为XDocument打开并解析

编辑:这个例子是无关的。仅对于版本,请使用:

string Version = XDocument.Load("WMAppManifest.xml")
    .Root.Element("App").Attribute("Version").Value;
要从“WMappManifest.xml”获取应用程序版本,此解决方案可能比lukas解决方案更高效:

对于WP7:

var xmlReaderSettings = new XmlReaderSettings
{
    XmlResolver = new XmlXapResolver()
};
using (var xmlReader = XmlReader.Create("WMAppManifest.xml", xmlReaderSettings))
{
    xmlReader.ReadToDescendant("App");
    return xmlReader.GetAttribute("Version");
}
对于WP8:

using (var stream = new FileStream("WMAppManifest.xml", FileMode.Open, FileAccess.Read))
{
    string appVersion = XElement.Load(stream).Element("App").Attribute("Version").Value;
}

谢谢“前两个”和“下两个”-你是什么意思?在清单中只有
版本
AppPlatformVersion
是完全不同的。Version=“1.3.0.0”1.3对市场有效0.0只对您有效相关信息是清单按原样(未经处理)进入设备,并且在运行时可以作为XML文件轻松获得。这不是一个显而易见的设计。这行代码可能会帮我节省几个小时!它与Unity一起工作,以防任何人需要它。我认为效率对About屏幕不太重要。我不认为答案是针对About屏幕的,而是针对如何获取版本号。