我有一个具有自己更新过程的应用程序。我写自己的书是因为我不想使用ClickOnce,并且当时不了解Squirrel。更新过程如下:
我仅复制DLL文件,EXE和清单文件。其他文件是我不想覆盖的各种设置文件。
有些请求的功能需要添加到一个设置文件中,但是我不知道如何在当前更新过程中提供这种功能。我唯一能想到的就是在更新过程中建立某种“最低版本”功能,因此在从版本A到版本C之前,必须先下载版本B。然后发布单独的版本,其中一个用于更新过程,另一个用于请求的功能。
最后一项是这些不是自动更新。用户通过显式检查更新并说要更新(如果存在)来选择加入。远程位置只有一个ZIP文件,而不是每个发行版本的ZIP文件。
关于如何应对这些变化的任何想法?现在的用户群很小,因此无论我希望知道什么位置,都可以得到它。
答案 0 :(得分:1)
我的理解是,您的更新过程能够覆盖二进制文件,现在它需要“合并”文本文件(这些设置),例如在现有设置旁边添加新设置,而不会覆盖现有设置的值。
在这种情况下,建议您将默认值用于新设置。这是一个示例:
在1.0版中,您将提供数据库连接的设置。
在版本1.1中,您添加了新设置来控制timeout
并更新设置文件。您的代码应检查设置文件中是否已存在该值,如果已存在,请使用它,否则将其设置为您选择的默认值-例如5秒钟;它存储在内存中(硬编码)。您可以选择将此值(如果不存在)写入设置文件,以使用户知道有可用的新设置。
这能给您带来什么?
安装1.1(以前未安装1.0)的用户将timeout
设置为5秒获得设置文件。
从1.0升级到1.1的用户保留其现有的设置文件,您可以在运行1.1时更新该文件,也可以不更新
您可以从任何版本更新到最新版本,因为即使设置文件中没有设置,代码也会始终为设置定义默认值。