我有一个用 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?";