33

目前textbox,我每次发布应用程序时都会手动更新应用程序中的版本字段 ( )。我想知道是否有办法让我的应用程序从某个地方获取该数据并将其显示在我的框中。我正在使用 VS2012,但我不确定如何在 C# 中实现这一点。下面是我正在谈论的 VS2012 属性窗口的屏幕截图。

从 VS2012 发布图像

新图片:

在此处输入图像描述

4

5 回答 5

34

不要忘记检查应用程序是否已网络部署,否则它将无法在调试模式下工作。

if (ApplicationDeployment.IsNetworkDeployed)
{
    this.Text = string.Format("Your application name - v{0}",
        ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString(4));
}
于 2014-12-04T13:01:52.767 回答
16

试试这个:

using System.Deployment.Application;

public Version AssemblyVersion 
{
    get
    {
        return ApplicationDeployment.CurrentDeployment.CurrentVersion;
    }
}

然后 getter 属性的调用者可以取消引用MajorMinor和属性BuildRevision如下所示:

YourVersionTextBox.Text = AssemblyVersion.Major.ToString() + "."
                        + AssemblyVersion.Minor.ToString() + "."
                        + AssemblyVersion.Build.ToString() + "."
                        + AssemblyVersion.Revision.ToString();
于 2013-07-17T03:11:02.587 回答
8

我们也可以使用重载ToStringSystem.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
于 2014-09-18T12:32:03.983 回答
2

方法一: 你可以用这个

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));
于 2018-11-02T09:00:37.727 回答
0

如果你得到一个错误ApplicationDeployment,那么你可以试试这个:

对于通过 访问的全局版本,请ProgramProgram类中声明:

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());
于 2015-12-06T17:48:29.853 回答