【问题标题】:How to display updated version Number Automatically in Windows form Application c#?如何在 Windows 窗体 Application c# 中自动显示更新的版本号?
【发布时间】:2019-07-26 06:21:13
【问题描述】:

我必须自动显示构建版本而无需在 Windows 窗体应用程序中手动输入,我尝试过类似 [assembly: AssemblyVersion("1.0.*")]assemblyInfo.cs 但它的显示如下,

{1.0.7145.41554}看起来很别扭

我想在发布后显示类似 [1.0.0.13] 的内容,但总是需要 [1.0.0.1]

见下图我想在视图页面中显示该版本

这就是我获取版本的方式;但它正在返回 [1.0.0.1]

 //Get Version of the currently executing Assembly
 var anm = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
 ExistingVersion = String.Format("{0}", anm);
 EMajor = anm.Major;
 EMinor = anm.Minor;
 EBuildNo = anm.Build;
 ERevisionNo = anm.Revision;

 lblVersionv.Text = String.Format("Current Version : {0}", anm);

我该怎么做?

【问题讨论】:

  • 这就是我想要显示的内容。我现在的版本是 10.0.0.13。如果我再构建一次,它将变成 10.0.0.14 这个版本我需要在视图页面中显示
  • 我没有设置每次发布都会自动获取版本。
  • 糟糕,写错了..它的 1.0.0.13
  • 从副本中尝试this answer

标签: c# asp.net winforms


【解决方案1】:

这有点令人费解,但您可以从自己的代码中获取此信息,然后决定以您喜欢的方式显示它。

第一步是最关键的,你需要从你自己的一个类中获取一个类型。
例如,您可以使用主表单类

Type myApp = Type.GetType("your-full-qualified-class-name-here");

所以假设你的命名空间是“MyApplication”并且你的主表单类被命名为“MyStartupForm”,那么你应该用“MyApplication.MyStartupForm”替换上面的字符串(用大写/小写字母精确)

现在使用该类型,您可以获得Version 信息

Version v = myApp.Assembly.GetName().Version;

最后,版本变量将包含您需要的所有信息。
(看属性Build、Version、Revision、MinorRevision、MajorRevision)

另请注意,ToString 方法的覆盖将返回一个包含所有所需信息的字符串

【讨论】:

  • 但这也会给出版本对吗?System.Reflection.Assembly.GetExecutingAssembly().GetName().Version
  • 是的,它是一样的,但更短。
【解决方案2】:

我通过添加以下代码来解决这个问题

 if (ApplicationDeployment.IsNetworkDeployed)
  {
     lblVersionv.Text = string.Format("Version : {0}",ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString(4));
  }

【讨论】:

    猜你喜欢
    • 2010-11-09
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 2010-09-05
    • 1970-01-01
    • 2022-08-23
    • 2013-11-04
    相关资源
    最近更新 更多