У меня огромная проблема:
У меня есть старое приложение App1.0.exe.В этом приложении есть файл App1.0.exe.config (конфигурация приложения).Теперь я сделал версию 2.0, с новой версией теперь есть разные настройки приложений в Appconfig.Мой вопрос: как я могу сохранить старый Appconfig при установке обновления?
Попытка решить проблему не удалась:
-Считать старую конфигурацию с событием BeforeInstall, сохранить впараметры контекста и записать в новый конфиг в событии Afterinstall.- BeforeInstall считывает новый конфиг (старый удаляется).-Не копируйте новый Appconfig, но копируйте файл с другим именем, например, AppConfigUpdate.config, который включает новый appconfig.В событии после установки я сохраняю старую конфигурацию с помощью 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 дней, и мне действительно нужна ваша помощь.У меня заканчиваются идеи, как решить эту проблему, может, у кого-нибудь из вас была похожая проблема?
Извините за мой плохой английский.С наилучшими пожеланиями