我有一個用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