Изменение пользовательских настроек во время установки MSI - PullRequest
3 голосов
/ 20 марта 2010

Я пытаюсь изменить раздел userSettings (Properties.MyApp.Default) в файле MyApp.exe.config во время установки приложения WPF с помощью установщика 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();
}

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

Заранее спасибо!

1 Ответ

0 голосов
/ 29 июня 2010

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

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

Проверьте этот вопрос для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...