在My Project的发布选项卡上有正确的当前版本,1.1.0.0,在控制面板下的程序和功能中显示1.1.0.0,但是当我引用Application.ProductVersion时,我得到1.0.0.0。
我做错了什么或我在这里错过了什么?
感谢。
答案 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>装配>文件版本(我更新了程序集版本和文件版本,但它是重要的文件版本。)
你可以使用Project>属性:
现在,我只想要主要和次要数字(连接到表单标题),所以我使用了这个:
MsgBox(Application.ProductVersion.Substring(0, 3))
希望这有助于他人。这是一个很大的挖掘!
答案 3 :(得分:1)
也许你应该尝试在程序集中明确地放置一个属性: 例如:[assembly:AssemblyVersion(“1.1.0.0”)]
问候,迈克尔。