2010-03-20 4 views
3

Я пытаюсь изменить раздел UserSettings (Properties.MyApp.Default) в файле MyApp.exe.config во время установки моего приложения WPF с помощью установщика MSI.Изменение настроек пользователя во время установки MSI

Я в основном реализовал его, как в этой превосходной статье: http://raquila.com/software/configure-app-config-application-settings-during-msi-install/

Разница заключается в том, что я не редактируя AppSettings, но раздел UserSettings.

Проблема в том, что, хотя код работает нормально, настройки не сохраняются. После установки конфигурационный файл содержит старые настройки, которые я использую в своей среде разработки. Я также попытался переопределить OnAfterInstall (System.Collections.IDictionary stateSaver) вместо Install (System.Collections.IDictionary stateSaver), но это не имеет значения.

Вот код, который должен изменить значения конфигурации:

protected override void OnAfterInstall(IDictionary savedState) 
{ 
    base.OnAfterInstall(savedState); 

    string targetDirectory = Context.Parameters["targetdir"]; 
    string tvdbAccountID = Context.Parameters["TVDBACCID"]; 
    // read other config elements... 

    Properties.Settings.Default.Tvdb_AccountIdentifier = tvdbAccountID; 
    // set other config elements 

    Properties.Settings.Default.Save(); 
} 

Любая идея, как сохранить эти изменения? Я уже читал о Виксе, но для меня это кажется излишним.

Заранее благодарен!

ответ

0

Пользовательские настройки сохраняются в локальной папке текущего пользователя, обычно выглядит как C: \ Users \ Username \ AppData \ Local \ Manufacturer \ ApplicationName \ Application.exe_StrongName \ VersionNumber \ user.settings Обратите внимание, что местоположение изменяется с версиями приложений.

Раздел UserSettings из раздела exe.config содержит значения по умолчанию для новых пользователей.

Для получения дополнительной информации отметьте this question.

+0

Когда пользовательские настройки сохраняются во время установки MSI, они сохраняются в C: \ Users \ Username \ AppData \ Local \ Microsoft_Corporation \ SomeHash \ Version (версия MSI?) \ User.config. –