Подтвердить что ты не робот

Версия приложения WP7

Приложение Windows Phone 7, похоже, имеет два места с номером версии - один в AssemblyInfo.cs(через атрибуты AssemblyVersion/AssemblyFileVersion), другой - WMAppManifest.xml. Эти два кажутся некоррелированными - изменение одного не влияет на другое. Кажется, что в Marketplace используется один из манифеста - может кто-нибудь, пожалуйста, подтвердите это?

Реальный вопрос: как я могу извлечь из манифеста программно для отображения на экране About?

4b9b3361

Ответ 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;
}