2009-02-09 20 views
5

Necesito mostrar el número de versión de .NET Compact Framework en la pantalla. Estoy usando .NET CF 2.0 con Windows   CE 4.0.Número de versión en la aplicación .NET Compact Framework

Hasta ahora, he estado ignorando el número de versión por completo. ¿Debo agregar algo al ensamblaje? ¿cómo lo recupero programáticamente?


Desafortunadamente esto no se aplica a Compact Framework. La propiedad Application.ProductVersion no existe en Compact Framework. Sin embargo, la última parte de tu respuesta se aplica.

¿Estas propiedades (mayor, menor, construcción, revisión) se incrementan automáticamente o las configuro cuando quiero? Tal como lo veo, la revisión debería incrementarse automáticamente con cada compilación nueva.

Respuesta

12

System.Reflection.Assembly.GetExecutingAssembly(). GetName(). Version.major System.Reflection.Assembly.GetExecutingAssembly(). GetName(). Version.Minor System.Reflection.Assembly.GetExecutingAssembly(). . GetName() Version.Build System.Reflection.Assembly.GetExecutingAssembly() GetName() Version.Revision

Fuente:.. http://msdn.microsoft.com/en-us/library/system.version.aspx

(Editar)

Application.Prod uctVersion Propiedad

Obtiene la versión del producto asociada a esta aplicación.

no está disponible en el marco compacto Pero System.Reflection.Assembly.GetExecutingAssembly(). GetName(). Es la versión.

Fuente: http://msdn.microsoft.com/en-us/library/system.windows.forms.application.productversion.aspx

+0

Corrección Agregado, Application.ProductVersion no está disponible en CF – VBNight

5
+0

O puede usar 'ToString() 'sin un parámetro para obtener la cadena de versión completa. –

1

Sé que esto es una vieja pregunta, pero aquí es una solución que encontré usando Reflexión y LINQ (reenviado desde my answer here).

Primero, agregué esto a AssemblyInfo.cs (reemplazar la cadena con lo que quieras usar):

[assembly: AssemblyInformationalVersion("1.0.0.0 Alpha")] 

A continuación, puede utilizar este método para sacar el atributo (lo puse dentro de una clase estática en el archivo AssemblyInfo.cs). El método get es una matriz de todos los atributos de ensamblaje, luego selecciona el primer resultado que coincida con el nombre del atributo (y lo arroje al tipo apropiado). A continuación, se puede acceder a la cadena InformationalVersion.

//using System.Reflection; 
//using System.Linq; 
public static string AssemblyInformationalVersion 
{ 
    get 
    { 
     AssemblyInformationalVersionAttribute informationalVersion = (AssemblyInformationalVersionAttribute) 
      (AssemblyInformationalVersionAttribute.GetCustomAttributes(Assembly.GetExecutingAssembly())).Where( 
       at => at.GetType().Name == "AssemblyInformationalVersionAttribute").First(); 

     return informationalVersion.InformationalVersion; 
    } 
} 

Para obtener el atributo normal "AssemblyVersion" Solía:

//using System.Reflection; 
public static string AssemblyVersion 
{ 
    get 
    { 
     return Assembly.GetExecutingAssembly().GetName().Version.ToString(); 
    } 
} 
0

Para mostrar la versión del producto con .NET Compact Framework (probado con con 2,0 y 3,5), puede utilizar AssemblyHelper. getProductVersion() se define a continuación.

Por ejemplo, si la versión de montaje se define como a continuación en el archivo AssemblyInfo.cs, el resultado del método es "1.2.3".

Extracto de archivo AssemblyInfo.cs:

[assembly: AssemblyVersion("1.2.3")] 

Extracto de AssemblyHelper.cs archivo:

using System; 
using System.Reflection; 

public static class AssemblyHelper 
{ 
    public static string getProductVersion() 
    { 
    Version assemblyVersion = Assembly.GetExecutingAssembly().GetName().Version; 
    return String.Format("{0}.{1}.{2}", assemblyVersion.Major, assemblyVersion.Minor, assemblyVersion.Build); 
    } 
} 
Cuestiones relacionadas