【问题标题】:Winforms: getting Publish Version number?Winforms:获取发布版本号?
【发布时间】:2013-05-07 16:09:44
【问题描述】:

我有一个 Winforms 应用程序并想显示版本号,以便我们知道我们的更新脚本是否正确运行。有没有办法获取发布版本号(显示在应用程序的属性页,发布选项卡中)?

当我使用 Reflection.Assembly.GetExecutingAssembly().GetName().Version 等时,它似乎使用了 AssemblyInfo.vb 中的 AssemblyVersion 编号,这并不相同。

如果我在 AssemblyInfo.vb 中使用通配符,它​​会再次出现不同的数字。

【问题讨论】:

标签: vb.net winforms system.reflection


【解决方案1】:

这应该会为您提供发布版本:

ApplicationDeployment.CurrentDeployment.CurrentVersion

【讨论】:

  • 供参考:the msdn link
  • 你需要包含 System.Deployment.Application
【解决方案2】:

试试这个:

If  My.Application.IsNetworkDeployed Then
   Label1.Text = My.Application.Deployment.CurrentVersion.ToString()
End If

发布版本将出现在运行时。

一开始我没有发现“发布版本将出现在运行时”,但我能够使用它并将我的标签设置为“调试期间不适用”,然后在发布时它会更改并显示已发布的版本.

【讨论】:

    【解决方案3】:

    试试这个:

    If  My.Application.IsNetworkDeployed Then
        Label1.Text = My.Application.Deployment.CurrentVersion.ToString()
    End If
    

    发布版本将出现在运行时。

    【讨论】:

    • 这对我有用!该值仅在发布后可用。
    【解决方案4】:

    如果应用程序未发布,您将收到错误消息,或者您处于开发模式,您将收到错误消息。试试下面的:

    Imports System.Deployment.Application
    
    If ApplicationDeployment.IsNetworkDeployed Then
       lblVersion.Text = ApplicationDeployment.CurrentDeployment.CurrentVersion
    Else
       lblVersion.Text = Application.ProductVersion
    End If
    

    【讨论】:

      【解决方案5】:

      这对我 Isidoros 有效,并进行了以下 ToString 修改。

      Imports System.Deployment.Application
      
      If ApplicationDeployment.IsNetworkDeployed Then
          strTemp = ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString
      Else
          strTemp = Application.ProductVersion.ToString
      End If
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-22
        • 2017-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多