我有一个用C#编写的WinForms应用程序。有一个部署项目,它创建一个setup.exe,并在其中设置一个版本号。如何获取存储在部署项目中的产品版本号?
如何在运行时获取此版本号,以便我可以将其写入日志或将其显示在关于框中?
我一直在使用下面的代码,但它不适用于64位安装。
RegistryKey key = Registry.LocalMachine.OpenSubKey(
@"Software\Microsoft\Windows\CurrentVersion\Uninstall");
string[] subKeyNames = key.GetSubKeyNames();
foreach (string subKeyName in subKeyNames)
{
Microsoft.Win32.RegistryKey subKey2 = key.OpenSubKey(subKeyName);
if (ValueNameExists(subKey2.GetValueNames(), "DisplayName")
&& ValueNameExists(subKey2.GetValueNames(), "DisplayVersion"))
{
string name = subKey2.GetValue("DisplayName").ToString();
string version = subKey2.GetValue("DisplayVersion").ToString();
if(name == "MyAppName") return version;
}
subKey2.Close();
}
key.Close();
return "v?";
在C#中是'System.Windows.Forms.Application.Info.Version'吗?如果是这样,它不起作用。找不到'Info'。 – paul 2013-05-14 10:11:53
适用于所有语言的一种是System.Reflection.Assembly.GetExecutingAssembly()。GetName()。版本 – raj 2013-07-04 09:25:48