2016-12-15 2 views
0

Ich habe eine Anwendung geerbt, die die Konfigurationsmanagerklasse verwendet, um Einstellungen zu speichern und abzurufen. In der Klasse app.config gibt es eine benutzerdefinierte Abschnittsgruppe "userSettings", die eine "Server" -Eigenschaft enthält.Warum rufen meine Programmeinstellungen andere Werte ab als erwartet?

In der Datei app.config ist dieser Wert als "a14" definiert. In Settings.Designer.vb wird der Standard als "a5" angegeben, aber wenn ich versuche, auf My.Settings.Server zuzugreifen, bringt es den Wert "a10" zurück, was ein Wert ist, den ich zuvor in der Datei app.config verwendet habe.

Da ich nicht viel Erfahrung mit dem Konfigurationsmanager habe, kann ich nicht feststellen, woher er diesen Wert abruft und was ich ändern muss, damit er den korrekten Serverwert abruft.

Der Kürze halber habe ich andere Einstellungen aus dem Codebeispiel entfernt.

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 

Anwendungscode: (Server eingestellt wird auf "a10" , aber ich möchte, dass es den app.config-Wert von "a14" hat).

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

Versuchen Sie, die Ordner "Bin" und "Debug" des Projekts zu löschen? Einer davon kann eine alte Version von 'app.config' enthalten. – groverboy

+0

Sorry, komme immer noch mit a10 zurück. Gute Idee aber. –

+0

Ich habe dieses Problem gelöst, indem ich die Anwendung gestartet habe, den Wert der Einstellungen geändert und dann my.settings.save verwendet habe, um die neuen Werte zu speichern. Ich würde trotzdem gerne wissen, wo diese Daten geschrieben wurden. –

Antwort

1

Es sieht so aus, als hätte ich das falsche Ding erwartet (na ja, duh). Ich hatte diese Einstellungen als Benutzereinstellungen festgelegt, die im Ordner/appdata/gespeichert sind und nichts mit der Datei app.config zu tun hatten.

Die Benutzerkonfigurationsdatei wurde mit den Anfangswerten festgelegt und wurde nie zuvor mit My.Settings.Save geändert. Weitere Details in dieser Antwort: Where are My.Settings saved in VB 2010 .NET?

Verwandte Themen