c # error: section de configuration non reconnue userSettings-stop program reading user.config?

dans mon application c # form (créée en VS2010, en utilisant .NET 4.0) j'utilise un paramètre d'application pour stocker un chemin de sortie.

auparavant, ce paramètre était configuré avec un user scope, mais j'ai dû changer son scope en application.

après avoir fait cela je reçois maintenant un section de configuration non reconnue userSettings erreur lors du démarrage du formulaire (notez que le programme a déjà été exécuté avec le paramètre scope défini à l'utilisateur):

InnerException: System.Configuration.ConfigurationErrorsException
   Message=Unrecognized configuration section userSettings. (C:Documents and SettingsAdministratorLocal SettingsApplication DataCallCenterFormCallCenterForm.vshost.exe_StrongName_bplf30wziudnpq0knzaacfuyomd5rv45.0.0.0user.config line 3)
   Source=System.Configuration
   BareMessage=Unrecognized configuration section userSettings.
   Filename=C:Documents and SettingsAdministratorLocal SettingsApplication DataCallCenterFormCallCenterForm.vshost.exe_StrongName_bplf30wziudnpq0knzaacfuyomd5rv45.0.0.0user.config

si après avoir fait un peu de navigation cela semble être causé par le vieil utilisateur.fichier de configuration toujours existant sur le système, provoquant le programme de le lire et de jeter une erreur (je ne suis pas sûr de ce que le problème sous-jacent réel est). Je peux aussi confirmer que lorsque je supprime le fichier, le problème disparaît.

ce qui m'amène à ma question, y a-t-il un moyen de changer le programme pour qu'il ne lise pas l'ancien utilisateur.fichier de configuration, parce que la suppression manuelle n'est pas idéale comme le programme est déjà en production sur plusieurs systèmes.

excuses si cela a été couvert, mais je n'ai pas pu trouver de réponse.

<!-Au cas où cela vous serait utile, voici le contenu de mon application.fichier de configuration:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
      <section name="CallCenterForm.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
  <applicationSettings>
    <CallCenterForm.Properties.Settings>
      <setting name="saved_output_dir" serializeAs="String">
        <value>c:</value>
      </setting>
    </CallCenterForm.Properties.Settings>
  </applicationSettings>
</configuration>
14
demandé sur dancypants 2012-11-09 02:22:29

3 réponses

j'ai moi-même fait cette erreur aujourd'hui. La solution était d'entrer dans le dialogue D'information sur L'assemblage des propriétés du projet et d'avancer l'information sur l'assemblage et la version du fichier (ex. 1.0.0.0 à 1.0.1.0), enregistrez les modifications et reconstruisez l'application. Cela obligera le compilateur à réévaluer la configuration et empêchera l'application de créer et de lire un nouvel utilisateur.fichier de configuration correspondant à la nouvelle version en raison de l'absence de paramètres utilisateur dans la nouvelle version.

25
répondu Collie 2013-09-04 09:22:58

Comment avez-App.utilisation de la configuration pour ressembler à quand il y avait utilisateur.config? Je suppose que vous devez quand même déclarer <sectionGroup name="userSettings" ... > la façon dont elle était déclarée.

6
répondu Tar 2012-11-08 22:32:06

j'ai eu le même problème. J'ai dû nettoyer et reconstruire la solution. Ceci a résolu le problème.

0
répondu Marko Juvančič 2016-09-15 08:57:03