表单加载期间未设置应用程序版本

时间:2014-02-27 08:50:41

标签: c# winforms versioning

我有一个使用C#和SQL的WinForm应用程序。 我有一个特定的表单Load Event,它返回我的应用程序的当前版本。

这是它的外观。

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

我正在使用assm函数来获取主要版本,次要版本,构建版本等发布详细信息。

label1.Text = assm.Major.ToString();
label5.Text = assm.Minor.ToString();
label6.Text = assm.Build.ToString();
label7.Text = assm.Revision.ToString();

但是在加载表单时,它会在行上提供“应用程序标识未设置”异常:return ApplicationDeployment.CurrentDeployment.CurrentVersion;

可能是什么原因?

此外还有其他方法可以获取应用程序版本的详细信息吗?

3 个答案:

答案 0 :(得分:0)

您可以使用以下方法获取程序集版本:

public Version assm
{
  get
    {
      return Assembly.GetExecutingAssembly().GetName().Version;
    }
}

答案 1 :(得分:0)

如果在AssemblyInfo.cs中设置AssemblyInformationalVersion属性,则可以使用FileVersionInfo.ProductVersion获取该值。 E.g。

Assembly assembly = Assembly.GetExecutingAssembly();
FileVersionInfo fileVersionInfo = FileVersionInfo.GetVersionInfo(assembly.Location);
string version = fileVersionInfo.ProductVersion;

你在AssemblyInformationalVersion中输入的值可以是你真正喜欢的,它不仅限于major.minor等。所以“1.5 beta 1”这样的值是完全有效的。

有关详情http://msdn.microsoft.com/en-us/library/system.diagnostics.fileversioninfo.productversion(v=vs.110).aspx

,请参阅MSDN

因此,要添加额外的版本信息,您将拥有一个Assembly.cs,其中包含以下内容:

[assembly: AssemblyVersion("1.5.*")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.5 beta 1")]

答案 2 :(得分:0)

我用这个:

 public string GetVersion()
        {
            Version v = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
            return " v." + v.Major + "." + v.Minor + "." + v.Build + "." + v.Revision;
        }