Коллекция WPF configurationmanager.appsettings пуста

У меня есть приложение WPF (mvvm) с несколькими проектами. В основном проекте у меня есть файл App.config. Я добавил пару настроек через Settings.settings. Файл App.config выглядит так:

<configSections>
  <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
    <section name="VSAutomation.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </sectionGroup>
<section name="log4net" type="log4net.config.Log4NetConfigurationSectionHandler, log4net" />

log4net stuff here...
 <applicationSettings>
    <VSAutomation.Properties.Settings>
        <setting name="SimDir" serializeAs="String">
            <value>"C:\Program Files (x86)\sim"</value>
        </setting>
    </VSAutomation.Properties.Settings>
</applicationSettings>

Когда я пытаюсь получить доступ к этим настройкам из одного из других модулей

string appFolder = ConfigurationManager.AppSettings.Get("SimDir");

Он возвращает ноль. Если я установил точку останова и оценил

AppDomain.CurrentDomain.SetupInformation.ConfigurationFile

Он указывает на правильный файл appname.exe.config и настройки верны.

ConfigurationManager.AppSettings.Count возвращает 0

Это действительно странно. Я рассмотрел десятки вопросов здесь, StackOverflowflow, но не нашел решения. Это связано с разделом log4net?


person cce1911    schedule 27.10.2017    source источник
comment
stackoverflow.com/questions/2101273/ Вы сможете получить к нему доступ, просто набрав VSAutomation.Properties.Settings.SimDir   -  person Szabolcs Dézsi    schedule 28.10.2017
comment
Я пробовал это, но получаю сообщение об ошибке компилятора, в котором говорится, что VSAutomation не существует в текущем контексте. Я пытаюсь получить доступ к этим настройкам из другого проекта (модуль mvvm) в решении. У меня уже есть ссылка на этот проект из запускаемого проекта, поэтому я не могу добавить ссылку из этого проекта в запуск.   -  person cce1911    schedule 28.10.2017


Ответы (1)


Вот мое решение на случай, если у кого-то еще есть эта конкретная версия проблемы. Я пытался использовать пользовательский интерфейс Settings.settings в Visual Studio. Он создал структуру, показанную выше. Внимательно просмотрев эту статью, я попытался создать раздел appSettings и это сработало.

<appSettings>
   <add key="SimDir" value="C:\Program Files (x86)\sim"/>
</appSettings>

А сейчас

string appFolder = ConfigurationManager.AppSettings.Get("SimDir");

получает правильное значение.

person cce1911    schedule 29.10.2017