2010-05-21 4 views
1

J'ai utilisé Visual Studio pour générer une classe pour les paramètres d'application dans une application Windows Forms. Les paramètres d'application ne sont pas remplis avec des valeurs lors du débogage. Pourquoi n'y a-t-il pas de valeurs?Problème avec les paramètres d'application Windows Forms

Voici le code généré:

//------------------------------------------------------------------------------ 
// <auto-generated> 
//  This code was generated by a tool. 
//  Runtime Version:4.0.30319.1 
// 
//  Changes to this file may cause incorrect behavior and will be lost if 
//  the code is regenerated. 
// </auto-generated> 
//------------------------------------------------------------------------------ 

namespace Unidata_Client.Properties { 


    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] 
    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 

     private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 

     public static Settings Default { 
      get { 
       return defaultInstance; 
      } 
     } 

     [global::System.Configuration.UserScopedSettingAttribute()] 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 
     [global::System.Configuration.DefaultSettingValueAttribute("blah")] 
     public string UnidataUsername { 
      get { 
       return ((string)(this["UnidataUsername"])); 
      } 
      set { 
       this["UnidataUsername"] = value; 
      } 
     } 

     [global::System.Configuration.UserScopedSettingAttribute()] 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 
     [global::System.Configuration.DefaultSettingValueAttribute("blah")] 
     public string UnidataPassword { 
      get { 
       return ((string)(this["UnidataPassword"])); 
      } 
      set { 
       this["UnidataPassword"] = value; 
      } 
     } 

     [global::System.Configuration.UserScopedSettingAttribute()] 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 
     [global::System.Configuration.DefaultSettingValueAttribute("blah")] 
     public string UnidataHost { 
      get { 
       return ((string)(this["UnidataHost"])); 
      } 
      set { 
       this["UnidataHost"] = value; 
      } 
     } 

     [global::System.Configuration.UserScopedSettingAttribute()] 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 
     [global::System.Configuration.DefaultSettingValueAttribute("123")] 
     public string UnidataPort { 
      get { 
       return ((string)(this["UnidataPort"])); 
      } 
      set { 
       this["UnidataPort"] = value; 
      } 
     } 

     [global::System.Configuration.UserScopedSettingAttribute()] 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 
     [global::System.Configuration.DefaultSettingValueAttribute("blah")] 
     public string UnidataAccount { 
      get { 
       return ((string)(this["UnidataAccount"])); 
      } 
      set { 
       this["UnidataAccount"] = value; 
      } 
     } 
    } 
} 

Voici le fichier app.config:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
     <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > 
      <section name="Unidata_Client.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> 
     </sectionGroup> 
    </configSections> 
    <userSettings> 
     <Unidata_Client.Properties.Settings> 
      <setting name="UnidataUsername" serializeAs="String"> 
       <value>blah</value> 
      </setting> 
      <setting name="UnidataPassword" serializeAs="String"> 
       <value>blah </value> 
      </setting> 
      <setting name="UnidataHost" serializeAs="String"> 
       <value>blah</value> 
      </setting> 
      <setting name="UnidataPort" serializeAs="String"> 
       <value>123</value> 
      </setting> 
      <setting name="UnidataAccount" serializeAs="String"> 
       <value>blah</value> 
      </setting> 
     </Unidata_Client.Properties.Settings> 
    </userSettings> 
</configuration> 

comment je suis ici en utilisant les paramètres suivants:

using (var session = UniObjects.OpenSession(Settings.Default.UnidataHost, 
       int.Parse(Settings.Default.UnidataPort), 
       Settings.Default.UnidataUsername, 
       Settings.Default.UnidataPassword, 
       Settings.Default.UnidataAccount, 
       "udcs")) 
      { 
       ..... 
      } 
+3

S'il vous plaît fournir plus de détails – SLaks

+0

Vous avez spécifié aucun détail supplémentaire, et il n'y a pas vraiment quoi que ce soit n'importe qui pourrait t'offrir sans beaucoup plus d'explication. –

+1

Pouvez-vous poster le code pour la façon dont vous accédez aux paramètres? En outre, pouvez-vous publier votre fichier app.config? – NYSystemsAnalyst

Répondre

6

Vous utilisez "usersettings" (portée "user" dans le concepteur).
Lorsqu'ils sont modifiés (pas par défaut), ces paramètres sont stockés quelque part dans votre profil personnel.
Ces paramètres remplacent ceux du répertoire de votre application

Pourriez-vous essayer de modifier les paramètres pour étendre "application" dans le concepteur et exécuter à nouveau?

Si vous avez des valeurs alors, vous pouvez être sûr que les paramètres utilisateurs sont remplacés dans votre répertoire de profil.

Recherchez un user.config de fichier dans C: \ Users \ XX \ AppData \ Local \ ApplicationName \ Version \

+0

Dans VS2013 (pas sûr des autres versions), vous disposez d'un petit bouton appelé Synchronize [voir capture d'écran ici] (http://i.imgur.com/QC3iV5B.png) – itsho

0

est votre app.config en cours de copie et renommé en MyApp.exe.config dans votre répertoire de sortie de débogage?

+0

Oui c'est [les commentaires requièrent trop de caractères] –

+0

Et si vous utilisez un débogueur connecté, les paramètres sont-ils présents dans le fichier MyApp.vshost.exe.config? –