Версия приложения WP7
Приложение Windows Phone 7, похоже, имеет два места с номером версии - один в AssemblyInfo.cs(через атрибуты AssemblyVersion
/AssemblyFileVersion
), другой - WMAppManifest.xml. Эти два кажутся некоррелированными - изменение одного не влияет на другое. Кажется, что в Marketplace используется один из манифеста - может кто-нибудь, пожалуйста, подтвердите это?
Реальный вопрос: как я могу извлечь из манифеста программно для отображения на экране About?
Ответы
Ответ 1
Используется номер WmAppManifest.xml. Первые две цифры относятся к Marketplace (это проверяется при обновлении), следующие два для вашего внутреннего использования.
Это обычный XML файл, откройте его как XDocument и проанализируйте его. Пример.
EDIT: пример является посторонним. Для просто версии используйте:
string Version = XDocument.Load("WMAppManifest.xml")
.Root.Element("App").Attribute("Version").Value;
Ответ 2
Чтобы получить версию приложения из "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;
}