如何在文本框中显示发布版本?

大家好,

又有趣的问题。 目前,我每次发布时都会手动更新应用程序中的版本字段(文本框)。 我想知道是否有办法让我的应用程序从某个地方获取数据并将其显示在框中供我使用。 我正在使用VS2012,我只是不确定如何在C#中实现这一点。 下面是我正在谈论的VS2012属性窗口的屏幕截图。

从VS2012发布图像

新图片:

在此处输入图像描述

不要忘记检查应用程序是否是networkdeployed否则它将无法在调试模式下工作。

if (ApplicationDeployment.IsNetworkDeployed) { this.Text = string.Format("Your application name - v{0}", ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString(4)); } 

试试这个:

 using System.Deployment.Application; public Version AssemblyVersion { get { return ApplicationDeployment.CurrentDeployment.CurrentVersion; } } 

然后getter属性的调用者可以取消引用MajorMinorBuildRevision属性,如下所示:

 YourVersionTextBox.Text = AssemblyVersion.Major.ToString() + "." + AssemblyVersion.Minor.ToString() + "." + AssemblyVersion.Build.ToString() + "." + AssemblyVersion.Revision.ToString(); 

我们也可以使用System.Version重载ToString

 using System.Deployment.Application; public Version AssemblyVersion { get { return ApplicationDeployment.CurrentDeployment.CurrentVersion; } } YourVersionTextBox.Text = AssemblyVersion.ToString(1); // 1 - get only major YourVersionTextBox.Text = AssemblyVersion.ToString(2); // 1.0 - get only major, minor YourVersionTextBox.Text = AssemblyVersion.ToString(3); // 1.0.3 - get only major, minor, build YourVersionTextBox.Text = AssemblyVersion.ToString(4); // 1.0.3.4 - get only major, minor, build, revision 

如果您收到ApplicationDeployment错误,那么您可以尝试这样做:

对于通过Program访问的全局版本,在Program类中声明:

 private static Version version = new Version(Application.ProductVersion); public static Version Version { get { return version; } } 

现在你在程序中的任何地方都有Program.Version ,你可以用它来获取这样的版本信息:

 LabelVersion.Text = String.Format("Version {0}.{1}", Program.Version.Major.ToString(), Program.Version.Minor.ToString());