versiones usar sharp que puedo puede programas mejor industria cuando crear con aplicaciones c# .net

usar - que se puede crear con c#



¿Cómo obtengo la versión publicada actual en una aplicación.NET? (6)

Quiero poder mostrar la versión actual de una aplicación .NET que he implementado usando el asistente de publicación. Hay una buena opción para actualizar automáticamente el número de versión cada vez que publico mi aplicación.

Encontré otra pregunta ( actualizar automáticamente el número de versión ) que tenía esto para obtener la versión actual:

Assembly.GetExecutingAssembly().GetName().Version

Esto le proporciona la versión que establece en las propiedades del proyecto, pero no la versión que se incrementa automáticamente cada vez que publica.


Basado en la respuesta de Jason , terminé con esto:

Agregar referencia a System.Deployment.

string versionDeploy = Application.ProductVersion; if (System.Diagnostics.Debugger.IsAttached) { this.lblVersion.Caption = string.Format("Versión {0} DESA", versionDeploy); } else { if (System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed) { Version Deploy = System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion; versionDeploy = string.Format("{0}.{1}.{2}.{3}", Deploy.Major, Deploy.Minor, Deploy.Build, Deploy.Revision); } this.lblVersion.Caption = string.Format("Versión {0} PROD", versionDeploy); }

Espero eso ayude.


Puedes usar la siguiente prueba

if (System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed) { return System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion; }

para evitar la excepción (como se detalla en esta publicación ).

Además, no creo que pueda obtener la versión actual de publicación a través de la depuración de Visual Studio porque al acceder a CurrentDeployment lanzará InvalidDeploymentException .


Terminé usando este pequeño código para obtener la versión implementada actual o si no se implementó la versión de ensamblado actual.

private Version GetRunningVersion() { try { return Application.ApplicationDeployment.CurrentDeployment.CurrentVersion; } catch { return Assembly.GetExecutingAssembly().GetName().Version; } }

Tuve que agregar referencias a System.Deployment y System.Reflection .


Usé la siguiente solución para este problema, y ​​está funcionando para mí:

DataSet ds = new DataSet(); ds.ReadXml(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "MyProd.application")); DataTable dt = new DataTable(); if (ds.Tables.Count > 1) { dt = ds.Tables[1]; MessageBox.Show(dt.Rows[0]["version"].ToString()); }


Imports System.Configuration Public Function GetAppVersion() As String Dim ass As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly() Dim ver As System.Version = ass.GetName().Version Return ver.Major & "." & ver.Minor & "." & ver.Revision End Function


using System.Deployment.Application;

y

string yourPublishedVersionNumber=ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString()