Подтвердить что ты не робот

Как показать версию публикации в текстовом поле?

В настоящее время я вручную обновляю поле версии (textbox) в своем приложении каждый раз, когда публикую его. Мне интересно, есть ли способ, чтобы мое приложение получало эти данные откуда-то и отображало их в коробке для меня. Я использую VS2012, и я просто не уверен, как этого добиться в С#. Ниже приведен скриншот окна свойств VS2012, о котором я говорю.

Publish image from VS2012

НОВОЕ ИЗОБРАЖЕНИЕ:

enter image description here

4b9b3361

Ответ 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());