2010-10-25 22 views
9

En la pestaña de publicación de Mi proyecto, la versión actual correcta está allí, 1.1.0.0 y en Programas y características en el Panel de control muestra 1.1.0.0 pero cuando hago referencia a Application.ProductVersion aparece 1.0.0.0.Application.ProductVersion siempre devuelve 1.0.0.0

¿Qué estoy haciendo mal o qué me estoy perdiendo aquí?

Gracias.

Respuesta

13

La versión ensamby (en el archivo application.config) y la versión ClickOnce Publish son 2 números separados.

Si desea obtener la versión ClickOnce en tiempo de ejecución puede utilizar el código

 If (System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed) Then 
     With System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion 
      Me.Text = "V" & .Major & "." & .Minor & "." & .Build 
     End With 
    End If 

Editar siguiente: Para el, número de revisión completa de cuatro segmentos que necesita:

Me.Text = "V" & .Major & "." & .Minor & "." & .Build & "." & .Revision 
+0

¿Solo puede hacer referencia a esas propiedades si está ejecutando la versión compilada y desplegada de su aplicación? ¿Qué tal en el entorno de desarrollo? – Tom

+0

Esta es la razón por la que hago el si para empezar. Al utilizar este método, no puede acceder a la versión de Implementación en dev porque no está implementado.En nuestras aplicaciones, tiendo a hacer otro y poner un marcador de posición en el entorno de desarrollo. – DJIDave

+1

Entonces, ¿cómo accede a las mismas propiedades pero en el entorno de desarrollo? – Tom

1

Tal vez debería tratar de poner de forma explícita un atributo en su montaje: por ejemplo: [assembly: AssemblyVersion ("1.1.0.0")]

Saludos, Michael.

4

Sé que esto es antiguo, pero en Visual Studio Express 2013, me encontré con el mismo problema. Quería utilizar ProductVersion variable de este modo:

msgbox (Application.ProductVersion) 

pero siempre volvía 1.0.0.0 no importa lo que puse en la configuración de Publicar. En su lugar, encontré que tenía que ponerlo en Aplicación> Ensamblaje> Versión del archivo (actualicé tanto la versión del ensamblaje como la versión del archivo, pero es la versión del archivo lo que cuenta).

Application > Assembly > File Version

se llega a este mediante Proyecto> Propiedades:

Project Properties

Ahora, lo único que querían los números mayor y menor (para concatenar con el título del formulario), así que utiliza esta:

MsgBox(Application.ProductVersion.Substring(0, 3)) 

Espero que esto ayude a los demás. ¡Fue una gran búsqueda!

+0

@carkmagic: Gracias por esto ... –

7

Con System.Reflection puede utilizar:

Dim versionNumber As Version 

versionNumber = Assembly.GetExecutingAssembly().GetName().Version 

y luego llamar .ToString() en que si es necesario ...

y sin embargo, otro método es llamar

System.Windows.Forms.Application.ProductVersion 

(para completa Divulgación Encontré esto en MSDN Forums)

+0

Esta puede ser la forma actual, moderna y fácil de obtener algo que solía ser difícil de acceder. En cualquier caso, esta es la respuesta que ahora debería recibir votaciones. Probé ambas sugerencias, ambas funcionaron muy bien. Elegí el Sistema. solución ya que no requiere una importación adicional para que funcione (o ToString tampoco). –

Cuestiones relacionadas