Как показать версию публикации в текстовом поле?
В настоящее время я вручную обновляю поле версии (textbox
) в своем приложении каждый раз, когда публикую его. Мне интересно, есть ли способ, чтобы мое приложение получало эти данные откуда-то и отображало их в коробке для меня. Я использую VS2012, и я просто не уверен, как этого добиться в С#. Ниже приведен скриншот окна свойств VS2012, о котором я говорю.
![Publish image from VS2012]()
НОВОЕ ИЗОБРАЖЕНИЕ:
![enter image description here]()
Ответы
Ответ 1
Не забудьте проверить, развернуто ли приложение по сети, иначе оно не будет работать в режиме отладки.
if (ApplicationDeployment.IsNetworkDeployed)
{
this.Text = string.Format("Your application name - v{0}",
ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString(4));
}
Ответ 2
Попробуй это:
using System.Deployment.Application;
public Version AssemblyVersion
{
get
{
return ApplicationDeployment.CurrentDeployment.CurrentVersion;
}
}
Затем вызывающая сторона к свойству getter может отменить ссылку на свойства Major
, Minor
, Build
и Revision
, например:
YourVersionTextBox.Text = AssemblyVersion.Major.ToString() + "."
+ AssemblyVersion.Minor.ToString() + "."
+ AssemblyVersion.Build.ToString() + "."
+ AssemblyVersion.Revision.ToString();
Ответ 3
Также мы можем использовать перегруженный ToString
из System.Version
using System.Deployment.Application;
public Version AssemblyVersion
{
get
{
return ApplicationDeployment.CurrentDeployment.CurrentVersion;
}
}
YourVersionTextBox.Text = AssemblyVersion.ToString(1); // 1 - get only major
YourVersionTextBox.Text = AssemblyVersion.ToString(2); // 1.0 - get only major, minor
YourVersionTextBox.Text = AssemblyVersion.ToString(3); // 1.0.3 - get only major, minor, build
YourVersionTextBox.Text = AssemblyVersion.ToString(4); // 1.0.3.4 - get only major, minor, build, revision
Ответ 4
Способ 1: вы можете использовать это
string version = Application.ProductVersion;
и показать версию в вашем текстовом поле.
Способ 2: или, если вы хотите разделить версии по отдельности, вы можете использовать это:
System.Version version2 = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
теперь у вас есть эти:
version2.Major;
version2.Minor;
version2.Revision;
version2.Build;
и вы можете использовать их как это
string versionString= (String.Format("{0}.{1}.{2}.{3}", version2.Major, version2.Minor, version2.Revision, version2.Build));
Ответ 5
Если вы получили сообщение об ошибке ApplicationDeployment
, вы можете попробовать следующее:
Для доступа к глобальной версии через Program
объявите внутри класса Program
:
private static Version version = new Version(Application.ProductVersion);
public static Version Version
{
get
{
return version;
}
}
Теперь у вас есть Program.Version
в любом месте, доступное в программе, и вы можете использовать его для получения информации о версии следующим образом:
LabelVersion.Text = String.Format("Version {0}.{1}",
Program.Version.Major.ToString(),
Program.Version.Minor.ToString());