2016-12-15 2 views
0

J'ai hérité d'une application qui utilise la classe du gestionnaire de configuration pour stocker et récupérer les paramètres. Dans la classe app.config, il existe un groupe de sections personnalisé "userSettings" qui inclut une propriété "Server".Pourquoi mes paramètres d'application récupèrent-ils des valeurs différentes de celles auxquelles je m'attends?

Dans le fichier app.config, cette valeur est définie comme "a14". Dans Settings.Designer.vb, la valeur par défaut est "a5", mais quand j'essaye d'accéder à My.Settings.Server, il ramène la valeur "a10", qui est une valeur précédemment utilisée dans le fichier app.config. N'ayant pas beaucoup d'expérience avec le gestionnaire de configuration, je ne sais pas où il récupère cette valeur et ce que j'ai besoin de changer pour récupérer la bonne valeur du serveur.

Par souci de brièveté, j'ai supprimé d'autres paramètres de l'exemple de code.

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 

Code d'application: (serveur est réglé sur "a10" , mais je veux qu'il ait la valeur app.config de "a14").

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

Essayez de supprimer les dossiers 'Bin' et' Debug' du projet? L'un d'eux peut contenir une ancienne version de 'app.config'. – groverboy

+0

Désolé, toujours revenir avec a10. Bonne suggestion cependant. –

+0

J'ai résolu ce problème en démarrant l'application, en modifiant la valeur des paramètres, puis en utilisant my.settings.save pour enregistrer les nouvelles valeurs. Je voudrais toujours savoir où il était en train d'écrire ces données. –

Répondre

1

Il semble que je m'attendais à la mauvaise chose (bien duh). Ces paramètres ont été définis en tant que paramètres utilisateur, qui sont stockés dans le dossier/appdata/et n'ont rien à voir avec le fichier app.config.

Le fichier de configuration de l'utilisateur avait été défini avec les valeurs initiales et n'avait jamais été modifié par la suite avec un My.Settings.Save. Plus de détails dans cette réponse: Where are My.Settings saved in VB 2010 .NET?