C#应用程序版本管理

本文关键字:版本管理 应用程序 | 更新日期: 2023-09-27 18:00:51

我有一个C#应用程序及其相应的安装程序。它从注册表中读取启动数据,并将信息存储在"Environment.SpecialFolder.ApplicationData"''myapp文件夹下。

我的问题是:如果我对代码进行了各种更改,包括新的注册表项,我应该在新版本中的哪里反映这一点,所以当重新运行设置时:

  • 保留当前注册表项/值
  • 向注册表中添加新的项/值
  • 保持"应用程序数据"不变
    • 候选人是:

      • 程序集信息
      • 文件版本

      如果还有其他人,请告诉我。

      感谢

C#应用程序版本管理

我认为您的应用程序应该能够创建regestry键。您不知道用户是否手动删除它们以将设置重置为默认设置。安装程序应仅安装和注册组件。(但是卸载程序应该询问用户是否要删除或保留这些设置。(

解决方案A(

为了避免版本冲突,您可以记住额外的配置版本号。例如:程序版本1.0和2.0使用配置集1,而程序版本3.0使用配置集2,因为存在过时/新设置。只需在注册表树中为每个配置集创建一个子项。"应用程序数据"还可以包括一个具有独立配置集的子文件夹。主要优点是,用户可以毫无问题地降级。新版本可以从旧配置中导入旧值作为默认值。

解决方案B(

切勿删除(或更改类型或范围(设置。只需添加新密钥。旧的程序版本不知道它们,所以他们忽略了它。这很简单,因为没有不同的配置版本。但是,如果你保存了很多设置,它可能会变得复杂,因为你无法更改设置的类型。例如,您必须创建一个新键来将设置从保存整数更改为长整数,因为旧版本不理解长整数,并且会崩溃。