我有一个很大的问题:更新安装:如何保存app.config?
我有一个旧的应用程序App1.0.exe。有了这个应用程序,有一个名为App1.0.exe.config的文件(应用程序配置)。现在我创建了2.0版本,新版本现在在Appconfig中有不同的Appsettings。我的问题是:如何在更新安装时保存旧的Appconfig?
这种尝试对解决这一问题的失败:
- 读取出旧的配置与BeforeInstall事件,保存到上下文参数,并在一个Afterinstall事件新的配置写。 - BeforeInstall读出新的配置(旧的配置被删除)。 - 不要复制新的Appconfig,而要使用其他名称复制文件,例如包含新appconfig的AppConfigUpdate.config。在afterinstall事件中,我使用File.Move()保存旧的Config。现在,磨片有:
-Appconfig.exe.config_Original
-AppconfigUpdate.config
比我读出.config_Original谱写AppConfigUpdate.config参数和该重命名为Appconfig.exe。 config
我的问题是msi中有一个标准操作,它在执行我的自定义操作后执行:RemoveExistingProducts。所以,现在当我Debugg安装程序,我可以看到在我的习惯结束时有旧的配置.config_original和新的配置.config与旧配置的正确参数。但是,在我的自定义操作之后,安装将删除.config,只剩下.config_original。
我认为RemoveExistingProducts删除了未与更新包一起交付的所有文件。但是我不能提供.config,因为它覆盖原来的配置,并且所有的参数都丢失了。
我现在在这个问题上工作了3天,我真的需要你的帮助。我用尽了想法如何解决这个问题,玛比你们谁有类似的问题?
对不起,我的英语不好。 最好的问候
为什么你需要保存旧的App.config?那里的值不应该以任何方式改变,因为你部署了V1,所以你应该很高兴知道那里有什么,因为用户改变的所有设置都保存在AppData下的user.config中...... – ChrFin
为什么不呢?如果用户安装了v1,为什么他需要在与v1中设置相同的设置时配置v2?是的,我知道我不应该改变设置,这是一个巨大的错误:(但问题是:它发生了,现在我试图解决这个问题。问题是有一些其他程序的路径,例如,所以他们可以是不同的 – Manuel