There is a quick way to do this, set your (Solution)/(Project)/My Project/app.manifest to always copy to the output dir. then in your code use a simple XML reader to grab the version out of that file:
Dim m_xmld = New XmlDocument()
m_xmld.Load(Application.ExecutablePath & ".manifest")
Label14.Text = "v" & m_xmld.ChildNodes.Item(1).ChildNodes.Item(0).Attributes.GetNamedItem("version").Value
Catch ex As Exception
I have found a way to set the My.Application.Info.Version successfully in VB.NET using Microsoft Visual Basic 2010 Expres.
Navigate to your Projects Properties. (I do this by going to View > [projectname] Properties...) Then make sure you have the "Application" tab selected. Click on the button "Assembly Information". In here you can set the "Assembly version:" fields and they can then be referenced in your application by calling My.Application.Info.Version. This number will not auto-increment, you will have to change it manually.
The numbers seen in [projectname] Properties > Publish tab > Publish Version are always ingored ignored.
If (ApplicationDeployment.IsNetworkDeployed) Then
Dim AD As ApplicationDeployment = ApplicationDeployment.CurrentDeployment
Label2.Text = "v " & AD.CurrentVersion.ToString
Label2.Text = "v " & My.Application.Info.Version.ToString