我有一个使用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;
可能是什么原因?
此外还有其他方法可以获取应用程序版本的详细信息吗?
答案 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”这样的值是完全有效的。
因此,要添加额外的版本信息,您将拥有一个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;
}