Версия приложения WP7 - PullRequest
12 голосов
/ 15 апреля 2011

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

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

Ответы [ 2 ]

28 голосов
/ 15 апреля 2011

Номер WmAppManifest.xml используется.Первые две цифры относятся к Marketplace (проверяется при обновлении), следующие две предназначены для внутреннего использования.

Это обычный файл XML, откройте его как XDocument и проанализируйте. Пример .

РЕДАКТИРОВАТЬ: пример посторонний.Только для версии используйте:

string Version = XDocument.Load("WMAppManifest.xml")
    .Root.Element("App").Attribute("Version").Value;
1 голос
/ 30 апреля 2014

Чтобы получить версию приложения из "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;
}
...