我有一个大问题:
我有一个旧应用程序 App1.0.exe。对于这个应用程序,有一个名为 App1.0.exe.config(App config)的文件。现在我制作了 2.0 版,新版本现在 Appconfig 中有不同的 Appsettings。我的问题是:进行更新安装时如何保存旧的 Appconfig?
解决问题的尝试失败了:
- 使用 BeforeInstall 事件读出旧配置,保存到上下文参数并在 Afterinstall 事件中写入新配置。- BeforeInstall 读出新的配置(旧的被删除)。- 不要复制新的 Appconfig,而是复制一个具有不同名称的文件,例如包含新 appconfig 的 AppConfigUpdate.config。在安装后事件中,我使用 File.Move() 保存旧配置。现在谁有:
-Appconfig.exe.config_Original
-AppconfigUpdate.config
比我读出 .config_Original 并将参数写入 AppConfigUpdate.config 并将其重命名为 Appconfig.exe.config
我的问题是在执行我的自定义操作后执行的 msi 中有一个标准操作:RemoveExistingProducts。所以现在当我调试安装程序时,我可以在我的自定义操作结束时看到旧配置 .config_original 和新配置 .config 以及旧配置中的正确参数。但是在我的自定义操作之后,安装删除了 .config 并且只剩下 .config_original 。
我认为 RemoveExistingProducts 删除了所有未随更新包一起提供的文件。但是我无法提供 .config,因为它会覆盖原始配置并且所有参数都丢失了。
我现在在这个问题上工作了 3 天,我真的需要你的帮助。我没有想法如何解决这个问题,也许你们中的任何人都遇到过类似的问题?
对不起,我的英语不好。此致