Application.ProductVersion始终返回1.0.0.0

时间:2010-10-25 12:51:02

标签: vb.net

在My Project的发布选项卡上有正确的当前版本,1.1.0.0,在控制面板下的程序和功能中显示1.1.0.0,但是当我引用Application.ProductVersion时,我得到1.0.0.0。

我做错了什么或我在这里错过了什么?

感谢。

4 个答案:

答案 0 :(得分:13)

组合版本(在application.config文件中)和ClickOnce Publish版本是2个单独的数字。

如果要在运行时获取ClickOnce版本,可以使用以下代码

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

修改:对于您需要的完整四段修订号:

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

答案 1 :(得分:9)

使用System.Reflection,您可以使用:

Dim versionNumber As Version

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

然后根据需要调用.ToString() ......

另一种方法是调用

System.Windows.Forms.Application.ProductVersion

(对于完全披露我在MSDN Forums上找到了这个)

答案 2 :(得分:5)

我知道这是旧的,但在Visual Studio Express 2013中,我遇到了同样的问题。我想像这样使用变量ProductVersion:

msgbox (Application.ProductVersion)

但无论我在Publish的设置中放置什么,它总是返回1.0.0.0。我发现我不得不把它放在Application>装配>文件版本(我更新了程序集版本和文件版本,但它是重要的文件版本。)

Application > Assembly > File Version

你可以使用Project>属性:

Project Properties

现在,我只想要主要和次要数字(连接到表单标题),所以我使用了这个:

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

希望这有助于他人。这是一个很大的挖掘!

答案 3 :(得分:1)

也许你应该尝试在程序集中明确地放置一个属性: 例如:[assembly:AssemblyVersion(“1.1.0.0”)]

问候,迈克尔。