【发布时间】:2018-06-28 14:11:19
【问题描述】:
我的应用程序将用户设置写入注册表以便于检索,但这有点让人头疼,因为它是将它们写入为特定于版本的。
所以每次我更新我的应用程序时,它都会创建一个与新版本号相关的新子项。
设置写入注册表为:
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);
在上面的代码中,我故意删除了 COMPANY & PRODUCT 信息,并且我的应用程序当前版本为 1.0.20.0,因此在应用程序启动时,DeleteSubKey 行会运行,并且每次运行应用程序时都会运行。
我在想一些类似使用的东西:
If(PreviousVersion != Application.ProductVersion)
{
Registry.CurrentUser.DeleteSubKey(PreviousVersion);
}
但我无法充实这一点。
另外,最好让它只运行一次,而不是在每次启动时运行。
【问题讨论】:
标签: c# registry registrykey