web-dev-qa-db-fra.com

Comment corriger l'erreur: "Impossible de trouver les informations de schéma pour l'attribut / élément" en créant un schéma

J'ai une application Windows Forms écrite dans VS2010 avec C # et j'obtiens les erreurs suivantes dans le fichier app.config:

Message 4   Could not find schema information for the attribute 'name'
Message 8   Could not find schema information for the attribute 'name'
Message 12  Could not find schema information for the attribute 'name'
Message 5   Could not find schema information for the attribute 'serializeAs'
Message 15  Could not find schema information for the element 'CCP_Utility.Settings1'
Message 2   Could not find schema information for the element 'CCP_Utility.Properties.Settings'
Message 3   Could not find schema information for the element 'setting'
Message 1   Could not find schema information for the element 'userSettings'
Message 6   Could not find schema information for the element 'value'

Que dois-je changer dans le code pour résoudre ce problème? Où puis-je modifier le contenu de CCP_Utility.Settings1 et CCP_Utility.Properties.Settings?

Voici le code app.config:

<configuration>
<configSections>
    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
        <section name="CCP_Utility.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        <section name="CCP_Utility.Settings1" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
    </sectionGroup>
  </configSections>
<userSettings>
  <CCP_Utility.Properties.Settings>
    <setting name="SourceDir" serializeAs="String">
      <value />
    </setting>
    <setting name="TargetDir" serializeAs="String">
      <value />
    </setting>
    <setting name="CorpID" serializeAs="String">
      <value />
    </setting>
  </CCP_Utility.Properties.Settings>
    <CCP_Utility.Settings1>
        <setting name="sourceDir" serializeAs="String">
            <value />
        </setting>
        <setting name="targetDir" serializeAs="String">
            <value />
        </setting>
    </CCP_Utility.Settings1>

   </userSettings>
</configuration>
148
Brian McCarthy

UPDATE Sept 2015
Cette réponse continue de susciter des votes positifs, je vais donc la laisser ici, car elle semble être utile pour certaines personnes, mais veuillez consulter les autres réponses de @ reexmonkey et - @ Pressacco d'abord. Ils peuvent donner de meilleurs résultats.

RÉPONSE ORIGINALE
Donnez à ceci un coup de feu:

  1. Dans Visual Studio, ouvrez votre fichier app.config ou web.config.
  2. Allez dans le menu "XML" et sélectionnez "Créer un schéma". Cette action devrait créer un nouveau fichier appelé "app.xsd" ou "web.xsd".
  3. Enregistrez ce fichier sur votre disque.
  4. Retournez dans app.config ou web.config et dans la fenêtre d'édition , cliquez avec le bouton droit de la souris et sélectionnez Propriétés. A partir de là, assurez-vous que le xsd que vous venez de générer est référencé dans la propriété Schemas. Si ce n'est pas là, ajoutez-le.

Cela devrait faire disparaître ces messages.

J'ai enregistré mon fichier web.xsd à la racine de mon dossier Web (qui n'est peut-être pas le meilleur endroit pour cela, mais uniquement à des fins de démonstration) et ma propriété Schemas ressemble à ceci:

"C:\Fichiers de programme (x86)\Microsoft Visual Studio 10.0\xml\Schemas\DotNetConfig.xsd" "Web.xsd"

165
rsbarro

Le moyen le plus rapide et le plus simple de résoudre le problème:

  1. Cliquez avec le bouton droit sur l'icône du projet dans l'Explorateur de solutions et choisissez "Propriétés".
  2. Allez à l'onglet "Application" et choisissez un framework cible .NET antérieur.
  3. Sauvegarder les modifications.
  4. Allez à l'onglet "Application" et choisissez le framework cible initial .NET.
  5. Enregistrer les modifications => problème résolu!
209
reexmonkey

Un fichier XSD est inclus avec EntLib 5 et est installé dans le répertoire de schéma Visual Studio. Dans mon cas, il pourrait être trouvé à:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Xml\Schemas\EnterpriseLibrary.Configuration.xsd

LE CONTEXTE

  • Visual Studio 2010
  • Bibliothèque d'entreprise 5

ÉTAPES POUR RETIRER LES AVERTISSEMENTS

  1. ouvrez app.config dans votre projet Visual Studio
  2. clic droit dans l'éditeur de document XML, sélectionnez "Propriétés"
  3. ajoutez le chemin complet à "EnterpriseLibrary.Configuration.xsd"

DE CÔTÉ

Il convient de répéter que ces "Messages d'erreur" ("Impossible de trouver les informations de schéma pour l'élément") ne sont visibles que lorsque vous ouvrez le fichier app.config. Si vous "fermez tous les documents" et compilez ... aucun message ne sera signalé.

21
Pressacco

Cette erreur se produit lorsque votre projet fait référence à des schémas obsolètes. Utilisez Visual Studio pour en générer de nouveaux.

Dans Visual Studio, procédez comme suit:

  1. Ouvrez votre fichier app.config ou web.config.
  2. Allez dans le menu XML et sélectionnez Create Schema.

Cela déclenchera le ou les fichiers app#.xsd (application Windows) ou web#.xsd (Site Web) à générer.

  1. Enregistrez le ou les fichiers xsd nouvellement générés à la racine du projet.
    • Ouvrez votre fichier App.config ou web.config, cliquez avec le bouton droit de la souris dans l'éditeur de texte, sélectionnez Propriétés, puis cliquez sur le bouton ... situé en regard de la valeur de Schemas.
    • Ajoutez le ou les fichiers xsd nouvellement générés à l’aide du bouton Add.
    • Cliquez OK

L'erreur Impossible de trouver les informations de schéma pour l'attribut/élément erreur (s) doit maintenant être résolue.

1

J'ai trouvé qu'il y avait une erreur de syntaxe dans le module concerné et que ce n'était pas la compilation - le compilateur ne me l'a pas dit cependant. Vient de me donner l'erreur concernant les choses app.config. VS2010. Une fois que j'avais corrigé l'erreur de syntaxe, tout allait bien.

1
flobadob

Simple: dans le concepteur de rapports Visual Studio
1. Ouvrez le rapport en mode conception et supprimez le jeu de données du fichier RDLC.
2. Ouvrez l'explorateur de solutions et supprimez le fichier XSD réel (corrompu).
3. Rajoutez le jeu de données dans le fichier RDLC.
4. La procédure ci-dessus créera le nouveau fichier XSD.
5. Plus détaillé est ci-dessous.

Dans Visual Studio, ouvrez votre rapport de fichier RDLC en mode Création. Cliquez sur le rapport, puis sélectionnez Afficher, puis Données du rapport dans le menu de la ligne du haut. Sélectionnez Jeux de données, puis cliquez avec le bouton droit de la souris et supprimez le jeu de données du rapport. Ensuite, ouvrez l'Explorateur de solutions, s'il n'est pas déjà ouvert dans votre Visual Studio. Localisez le fichier XSD (il devrait s'agir du même nom que l'ensemble de données que vous venez de supprimer du rapport). Maintenant, revenez en arrière et cliquez de nouveau avec le bouton droit sur les jeux de données du rapport, puis sélectionnez Ajouter un jeu de données. Cela va créer un nouveau fichier XSD et écrire les propriétés du jeu de données dans le rapport. Votre message d'erreur disparaîtra et les données manquantes apparaîtront dans vos rapports.

1
Greg T.

Lorsque cela m'est arrivé (sorti de nulle part), j'étais sur le point de plonger dans la réponse précédente, puis j'ai décidé de fermer le projet, de fermer Visual Studio, puis de tout rouvrir. Problème résolu. VS bug?

0
Rockin Raul

J'avais ceci dans VS 2012 où le "nom de la section" avait été modifié dans un projet et je l'ai corrigé en supprimant "app.config" dans le projet, puis en cliquant avec le bouton droit de la souris sur le projet dans "l'Explorateur de solutions", en sélectionnant " Propriétés ", puis" Paramètres ", puis en modifiant l'un des paramètres, en enregistrant et en reconstruisant. Cela a créé un nouveau fichier app.config avec les informations correctes.

0
Davy C

Dans mon cas, j'avais une référence ambiguë dans mon code. J'ai redémarré Visual Studio et j'ai pu voir le message d'erreur. Quand j'ai résolu ceci, l'autre erreur a disparu.

0
Sofia Khwaja