2011-04-15 11 views
12

Parece que una aplicación Windows Phone 7 tiene dos lugares con número de versión: uno en AssemblyInfo.cs (a través de los atributos AssemblyVersion/AssemblyFileVersion), el otro es WMAppManifest.xml. Esos dos parecen no correlacionados: cambiar uno no afecta al otro. El mercado, al parecer, usa el del manifiesto. ¿Alguien puede confirmar esto?WP7 aplicación versión

La verdadera pregunta es: ¿cómo puedo recuperar la de manifiesto mediante programación para mostrarla en la pantalla Acerca de?

Respuesta

28

El número WmAppManifest.xml está en uso. Los primeros dos dígitos son relevantes para Marketplace (se verifica cuando se realiza la actualización) los siguientes dos son para su uso interno.

Este es un archivo XML normal, ábralo como un XDocument y analícelo. An example.

EDITAR: el ejemplo es extraño. Por tan sólo la versión, utilice:

string Version = XDocument.Load("WMAppManifest.xml") 
    .Root.Element("App").Attribute("Version").Value; 
+0

Gracias. "Primero dos" y "los dos siguientes" - ¿Qué quieres decir? En el manifiesto solo hay 'Versión',' AppPlatformVersion' es algo completamente diferente. –

+2

Version = "1.3.0.0" 1.3 es válido para el mercado 0.0 es solo para usted –

+1

La información relevante es que el manifiesto va al dispositivo como está (sin procesar), y está fácilmente disponible como un archivo XML en tiempo de ejecución. Ese no es un diseño inmediatamente obvio. –

1

Para Obtener aplicaciones Versión de "WMAppManifest.xml", esta solución podría ser un poco más eficiente que la solución de Lukas:

para WP7:

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

Para WP8:

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

No creo que la eficiencia sea muy importante para la pantalla Acerca de. –

+0

No creo que la respuesta haya sido específica de la pantalla Acerca de, sino específica de cómo obtener el número de versión. –

+0

La pregunta era. –

Cuestiones relacionadas