Предотвращение перезаписи файла конфигурации .NET во время установки - PullRequest
4 голосов
/ 31 июля 2009

Я использую InstallShield 2010 Express для установки приложения .NET WinForms. Последний проект InstallShield представляет собой серьезное обновление, поэтому я использовал раздел «Пути обновления», чтобы разрешить обновления с более ранних версий моего приложения.

Проблема заключается в том, что параметры конфигурации, сделанные во время начальной установки (записанные в Program Files \ MyCompany \ MyApp \ myapp.exe.config), перезаписываются при установке последнего обновления. Это означает, что пользователь должен снова выполнить все настройки конфигурации - не очень хорошо.

В проекте InstallShield myapp.exe.config настроен на использование Правил управления версиями установщика Windows . Я даже пытался установить дату создания / модификации myapp.exe.config очень старой (01.01.1999), чтобы он не перезаписывал файл в целевой системе.

Кроме этого, установщик работает нормально. Как я могу предотвратить перезапись этого файла?

Ответы [ 4 ]

1 голос
/ 20 февраля 2011

Проверьте атрибуты файла .config в установщике, если он помечен как элемент ключ и пользователь изменил его с момента его установки, система будет использовать MSI для его замены, полагая, что быть поврежденным и нуждающимся в ремонте.

1 голос
/ 01 февраля 2011

установить условие для isxmlinstall в последовательности с «НЕ установлено и не исправлено» isxmlinstall - это функция для обновления. xml не будет запускаться при обновлении.

0 голосов
/ 01 января 2011

Попробуйте использовать ApplicationSettingsBase.Upgrade () или ApplicationSettingsBase.GetPreviousVersion ()

http://msdn.microsoft.com/en-us/library/system.configuration.applicationsettingsbase.upgrade.aspx

0 голосов
/ 31 июля 2009

Разве в Installsheild нет раздела сценария "before_install"? Вы можете скопировать существующий файл конфигурации и после завершения установки перезаписать новый.

...