2016-12-15 11 views
0

Я унаследовал приложение, которое использует класс менеджера конфигурации для хранения и извлечения настроек. В классе app.config есть пользовательская группа разделов «userSettings», которая включает свойство «Сервер».Почему мои настройки приложения извлекают разные значения для тех, которые я ожидаю?

В файле app.config это значение определяется как «a14». В Settings.Designer.vb по умолчанию указывается как «a5», но когда я пытаюсь получить доступ к My.Settings.Server, он возвращает значение «a10», которое является значением, которое я ранее использовал в файле app.config.

Не имея большого опыта работы с диспетчером конфигурации, я затрудняюсь определить, откуда он извлекает это значение, и что мне нужно изменить, чтобы получить правильное значение сервера.

Для краткости я удалил другие настройки из образца кода.

app.config:

<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > 
     <section name="WorkstationApp.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> 

...

<userSettings> 
    <WorkstationApp.My.MySettings> 
     <setting name="Server" serializeAs="String"> 
      <value>a14</value> 
     </setting> 
    </WorkstationApp.My.MySettings> 
</userSettings> 

Settings.Designer.vb:

<Global.System.Configuration.UserScopedSettingAttribute(), _ 
    Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _ 
    Global.System.Configuration.DefaultSettingValueAttribute("a5")> _ 
    Public Property Server() As String 
     Get 
      Return CType(Me("Server"),String) 
     End Get 
     Set 
      Me("Server") = value 
     End Set 
    End Property 

Код приложения: (сервер быть установлен в положение "a10" , но я хочу, чтобы у него было значение app.config «a14»).

Dim Server As String = My.Settings.Server 
+0

Попробуйте удалить папки проекта «Bin» и «Debug»? Одна из них может содержать старую версию 'app.config'. – groverboy

+0

Извините, все еще вернусь с a10. Хорошее предложение. –

+0

Я решил эту проблему, запустив приложение, изменив значение параметров, а затем используя my.settings.save, чтобы сохранить новые значения. Я все же хотел бы знать, где он писал эти данные. –

ответ

1

Похоже, я ожидал не того (ну, дух). У меня были эти настройки, установленные как пользовательские настройки, которые хранятся в папке/appdata/и вообще не имеют никакого отношения к файлу app.config.

Пользовательский конфигурационный файл был установлен с начальными значениями и впоследствии не был изменен с помощью My.Settings.Save. Подробнее об этом ответе: Where are My.Settings saved in VB 2010 .NET?