2016-12-15 26 views
0

我已經繼承了一個使用配置管理器類來存儲和檢索設置的應用程序。在app.config類中,存在包含「服務器」屬性的自定義部分組「userSettings」。爲什麼我的應用程序設置檢索到不同的值,我期望的?

在app.config文件中,該值被定義爲「a14」。在Settings.Designer.vb中,當我嘗試訪問My.Settings.Server時,默認值被指定爲「a5」,它將帶回值「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」 ,但我希望它具有「a14」的app.config值)。

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?

相關問題