我有一個很大的問題:更新安裝:如何保存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