Windows Phone 7应用程序看起来有两个版本号 - 一个在AssemblyInfo.cs中(通过AssemblyVersion
/ AssemblyFileVersion
属性),另一个是WMAppManifest.xml。这两个似乎不相关 - 改变一个不会影响另一个。看来,市场使用清单中的那个 - 有人可以确认一下吗?
真正的问题是 - 如何以编程方式从清单中检索一个以显示在“关于”屏幕上?
答案 0 :(得分:28)
正在使用WmAppManifest.xml编号。前两个数字与市场相关(在您进行更新时会进行检查),其中两个数字供您内部使用。
这是一个常规XML文件,将其作为XDocument打开并解析它。 An example
编辑:这个例子是无关紧要的。对于版本,请使用:string Version = XDocument.Load("WMAppManifest.xml")
.Root.Element("App").Attribute("Version").Value;
答案 1 :(得分:1)
要从" 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;
}