web-dev-qa-db-fra.com

Corrigé: L'élément global 'configuration' a déjà été déclaré

J'ai utilisé la deuxième solution de Comment résoudre "Impossible de trouver les informations de schéma pour l'élément/attribut <xxx>"?

C'est à dire. créé un XSD avec le bouton pour créer un schéma. J'ai changé la feuille de style dans app.config en app.xsd mais maintenant je reçois l'avertissement:

L'élément global 'configuration' a déjà été déclaré dans app.xsd

Même lors du changement de nom, l'avertissement est affiché. Quelqu'un at-il une solution pour cela?

72
Michel Keijzers

J'ai eu un problème similaire à la question à laquelle vous faites référence, j'ai suivi ces instructions et tout allait bien. Assurez-vous que le EnterpriseLibrary.Configuration.xsd est dans %Program Files%\Microsoft Visual Studio [version] \Xml\Schemas\ tout d’abord, puis faites ceci:

Enterprise Library installe dans Visual Studio un schéma fournissant IntelliSense® pour l'édition de fichiers de configuration d'Enterprise Library dans l'éditeur XML de Visual Studio. Vous devez activer le schéma avant de pouvoir l'utiliser.

Pour activer le schéma de configuration de Enterprise Library

  1. Ouvrez le fichier de configuration dans Visual Studio en double-cliquant dessus dans l'Explorateur de solutions.

  2. Dans le menu XML, cliquez sur Schémas ... pour ouvrir la boîte de dialogue Schémas XML.

  3. Localisez le schéma nommé EnterpriseLibrary.Configuration.xsd. Ceci est installé automatiquement. Toutefois, s'il ne figure pas dans la liste, cliquez sur Ajouter et naviguez jusqu'au dossier% Program Files%\Microsoft Visual Studio [version]\Xml\Schemas \, puis sélectionnez EnterpriseLibrary.Configuration.xsd et cliquez sur Ouvrir.

  4. Modifiez la valeur dans la colonne Utiliser pour utiliser ce schéma. Puis cliquez sur OK.

Lien vers l'article est ici , espère que cela aide

35
Tommy Grovnes

Le redémarrage n'a pas fonctionné pour moi, alors j'aimerais partager ce qui a fonctionné.

Tout d'abord, je viens de mettre à niveau vers Windows 8. Ce problème ne s'était pas produit auparavant. Et ce problème ne s'est produit que dans n de mes fichiers app.config. J'ai donc décidé de comparer l'app.config problématique avec un bon. Dans Visual Studio, avec app.config ouvert, je suis allé à Xml -> Schemas. J'ai remarqué que la bonne configuration n'avait vérifié que trois de ces schémas. Le mauvais a vérifié les trois mêmes, plus un DotNetConfig.xsd. Après avoir modifié la colonne Use en automatique, pour DotNetConfig.xsd, le problème a disparu.

enter image description here

enter image description here

173
Bob Horn

Mon problème était que je suis passé de .Net 4.5 à .Net 4.0. Pour résoudre le problème, j'ai basculé tous les schémas cochés en automatique.

32
Al Option

J'ai eu du mal avec cela pendant un moment aussi. Il s’avère que ma version du problème provient du code caché {PROJECTNAME}.SUO fichier créé par Visual Studio.

Mon hypothèse est que VS mettra en cache les associations de schémas XSD dans ce fichier. Les avertissements sont apparus après la modification du cadre cible et ils ont disparu après la suppression du fichier SUO et le redémarrage de VS.

13
Ishmaeel

Avec les symptômes décrits dans la question et en utilisant Visual Studio 2013 (Update 4), je pouvais voir dans la boîte de dialogue XML Schemas [sic] que DotNetConfig.xsd Et DotNetConfig40.xsd ont été sélectionnés pour utilisation.

J'utilise un projet .NET Framework 4.0.

Les deux fichiers XSD sont en conflit, chacun définissant les mêmes éléments, ce qui provoque l'émission des avertissements.

Ces fichiers de schéma sont contenus dans le dossier %programfiles(x86)%\Microsoft Visual Studio 12.0\xml\Schemas\.

DotNetConfig.xsd Se trouve dans le sous-dossier 1033 Et semble être la version la plus récente et la plus complète.

Quels que soient les paramètres sélectionnés dans les schémas XML, je ne pouvais ni désélectionner ni supprimer DotNetConfig40 ni DotNetConfig . J'ai essayé "Remove", et en changeant le paramètre Use de "se this schema" à "Automatic" puis "Do pas utiliser ce schéma ".

Peu importe ce qui a été sélectionné, pour l'un ou l'autre fichier, lorsque je reviendrais à la boîte de dialogue, les deux seraient sélectionnés pour être utilisés. J'ai aussi essayé l'astuce de passer à une autre ligne avant d'appuyer sur " OK ", mais en vain.

Enfin, j'ai renommé le fichier DotNetConfig40.xsd En DotNetConfig40 DO NOT USE.xsd Pour empêcher son chargement. Cela a immédiatement résolu le problème.

Je ne suis pas content de devoir faire cela, et je me demande si cela aura un effet secondaire indésirable avec d'autres projets. Je mettrai à jour ce post avec mes résultats.

12
Charles Oppermann

Ce problème a été résolu une fois que j'ai fermé le fichier dans l'éditeur à l'origine de ces avertissements et que je l'ai recompilé.

6
Romonov

Après le redémarrage du système, le problème est résolu, ce qui signifie que je ne reçois plus aucun avertissement lié au système.

Il semble donc que le redémarrage (et éventuellement une restauration/réinitialisation implicite a supprimé l'avertissement).

4
Michel Keijzers

J'ai remarqué ce problème avec mon VS2017.

Changer DotNetConfig.xsd pour utiliser "Automatique" a résolu le problème.

enter image description here

4
omostan

Pour moi, j'ai remarqué que j'avais un tas de XML Schemas qui ont été dupliqués, j'ai simplement simplement marqué comme Don't Use tous ceux qui n'étaient pas liés à Visual Studio 2017. Le problème a immédiatement disparu

3
TheGeneral

À l'aide de Visual Studio 2015 Community Edition - la génération d'un fichier web.xsd dans le dossier racine de mon projet et son ajout à la liste des schémas ont effacé tous les avertissements sauf un,

L'élément global 'configuration' a déjà été déclaré '.

La fermeture du fichier web.config dans l'éditeur de texte et la reconstruction du projet ont effacé cet avertissement.

3
Randall Price

Necromancing: mise à jour 2019 avec Visual Studio 2017

J'ai essayé de faire ce que d'autres ont suggéré:

  • J'ai essayé de redémarrer le système: cela n'a pas fonctionné.
  • ouvrir App.Config
  • Menu: XML - Schémas ...
  • Voir qu'il y a plusieurs DotNetConfigXX.csd (XX soit emoty, soit un nombre)
  • J'ai essayé de les configurer automatiquement ou de "ne pas utiliser ce schéma"
  • J'ai essayé de supprimer le schéma en double

Tout cela n'a pas fonctionné.

Cependant, la solution de OLEG comme décrit ici a fonctionné.

Tout ce que je devais faire était de remplacer la partie suivante de tous les fichiers DotNetConfigXX.xsd utilisés (XX est vide ou un nombre) avec le code suivant

 <xs:element name="startup" vs:help="configuration/startup" 
 ...
 </xs:element>

Remplacer par:

<xs:element name="startup" vs:help="configuration/startup">
    <xs:complexType>
        <xs:choice minOccurs="1" maxOccurs="1">
            <xs:element name="requiredRuntime"     vs:help="configuration/startup/requiredRuntime">
                <xs:complexType>
                    <xs:attribute name="version" type="xs:string" use="optional" />
                    <xs:attribute name="safemode" type="xs:boolean" use="optional" />
                </xs:complexType>
            </xs:element>
            <xs:element name="supportedRuntime" minOccurs="1" maxOccurs="unbounded" vs:help="configuration/startup/supportedRuntime">
                <xs:complexType>
                    <xs:attribute name="version" type="xs:string" use="optional" />
                    <xs:attribute name="sku" type="xs:string" use="optional" />
                </xs:complexType>
            </xs:element>
        </xs:choice>
        <xs:attribute name="useLegacyV2RuntimeActivationPolicy" type="xs:boolean" use="optional" />
        <!-- see http://msdn.Microsoft.com/en-us/library/bbx34a2h.aspx -->
    </xs:complexType>
</xs:element>

N'oubliez pas de sauvegarder vos fichiers .XSD d'origine!

Après un redémarrage de Visual Studio, les erreurs ont disparu.

1
Harald Coppoolse