DeleteSubKey of previous Application Version/s C#
DeleteSubKey of previous Application Version/s C#
我的应用程序将用户设置写入注册表以便于检索,但这引起了一些麻烦,因为它是将它们写入特定于版本的。
所以每次我更新我的应用程序时,它都会创建一个与新版本号相关的新子项。
设置写入注册表为:
Application.UserAppDataRegistry.SetValue
我想找到一个简单的方法来删除所有与当前应用程序版本不匹配的 VERSION 子项。
目前,因为我的应用程序相对较新,所以我使用了这个,它确实有效但相当不整洁:
Registry.CurrentUser.DeleteSubKey("SOFTWARE\COMPANY\PRODUCT\1.0.0.0", false);
Registry.CurrentUser.DeleteSubKey("SOFTWARE\COMPANY\PRODUCT\1.0.10.0", false);
在上面的代码中,我故意删除了公司和产品信息,我的应用程序当前的版本是 1.0.20.0,所以在应用程序启动时,DeleteSubKey 行是 运行 并且每次应用程序是 运行.
我在想一些类似使用的东西:
If(PreviousVersion != Application.ProductVersion)
{
Registry.CurrentUser.DeleteSubKey(PreviousVersion);
}
但我无法充实它。
此外,最好只 运行 一次,而不是每次启动时。
您可以列出子项并检查它们是否与当前版本不同:
RegistryKey rk = Registry.CurrentUser.OpenSubKey("SOFTWARE\COMPANY\PRODUCT");
var keys = rk.GetSubKeyNames();
foreach (string s in keys)
{
if (s != "Current_verion_number")
{
Registry.CurrentUser.DeleteSubKeyTree("SOFTWARE\COMPANY\PRODUCT\" + s);
}
}
我的应用程序将用户设置写入注册表以便于检索,但这引起了一些麻烦,因为它是将它们写入特定于版本的。
所以每次我更新我的应用程序时,它都会创建一个与新版本号相关的新子项。
设置写入注册表为:
Application.UserAppDataRegistry.SetValue
我想找到一个简单的方法来删除所有与当前应用程序版本不匹配的 VERSION 子项。
目前,因为我的应用程序相对较新,所以我使用了这个,它确实有效但相当不整洁:
Registry.CurrentUser.DeleteSubKey("SOFTWARE\COMPANY\PRODUCT\1.0.0.0", false);
Registry.CurrentUser.DeleteSubKey("SOFTWARE\COMPANY\PRODUCT\1.0.10.0", false);
在上面的代码中,我故意删除了公司和产品信息,我的应用程序当前的版本是 1.0.20.0,所以在应用程序启动时,DeleteSubKey 行是 运行 并且每次应用程序是 运行.
我在想一些类似使用的东西:
If(PreviousVersion != Application.ProductVersion)
{
Registry.CurrentUser.DeleteSubKey(PreviousVersion);
}
但我无法充实它。
此外,最好只 运行 一次,而不是每次启动时。
您可以列出子项并检查它们是否与当前版本不同:
RegistryKey rk = Registry.CurrentUser.OpenSubKey("SOFTWARE\COMPANY\PRODUCT");
var keys = rk.GetSubKeyNames();
foreach (string s in keys)
{
if (s != "Current_verion_number")
{
Registry.CurrentUser.DeleteSubKeyTree("SOFTWARE\COMPANY\PRODUCT\" + s);
}
}