Winforms: получение номера версии публикации?

У меня есть приложение Winforms, и я хочу отобразить номер версии, чтобы мы могли знать, правильно ли работают наши сценарии обновления. Есть ли способ получить номер версии публикации (как показано на страницах свойств приложения, вкладка «Опубликовать»)?

Когда я использую Reflection.Assembly.GetExecutingAssembly (). GetName (). Version и т. Д., Похоже, используется номер AssemblyVersion из AssemblyInfo.vb, что не то же самое.

Если я использую подстановочные знаки в AssemblyInfo.vb, снова получаются разные числа.


person Milo Kofax    schedule 07.05.2013    source источник
comment
Дубликат: stackoverflow.com/questions/1248824/   -  person Max    schedule 07.05.2013


Ответы (5)


Это должно дать вам версию для публикации:

ApplicationDeployment.CurrentDeployment.CurrentVersion
person GJKH    schedule 07.05.2013
comment
Для справки: ссылка msdn - person gunr2171; 07.05.2013
comment
вам нужно включить System.Deployment.Application - person greg; 11.07.2013

Попробуй это:

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

Опубликованная версия появится во время выполнения.

Я не заметил, что версия для публикации появится во время выполнения для начала, но я смог использовать это и установил для своей метки значение «Н / Д» во время отладки, а затем при публикации она изменяется и отображает опубликованную версию.

person beetle442002    schedule 18.01.2018

Попробуй это:

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

Опубликованная версия появится во время выполнения.

person Mel    schedule 31.07.2017
comment
Это сработало для меня! Значение доступно только ПОСЛЕ публикации. - person Dave Stuart; 13.12.2019

Если приложение не опубликовано, вы получите сообщение об ошибке или вы находитесь в режиме разработки, вы получите сообщение об ошибке. Попробуйте следующее:

Imports System.Deployment.Application

If ApplicationDeployment.IsNetworkDeployed Then
   lblVersion.Text = ApplicationDeployment.CurrentDeployment.CurrentVersion
Else
   lblVersion.Text = Application.ProductVersion
End If
person Isidoros Moulas    schedule 22.12.2019

Это сработало для меня, Исидорос, со следующей модификацией ToString.

Imports System.Deployment.Application

If ApplicationDeployment.IsNetworkDeployed Then
    strTemp = ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString
Else
    strTemp = Application.ProductVersion.ToString
End If
person RBLevin    schedule 22.11.2020