web-dev-qa-db-de.com

Fix: Das globale Element 'configuration' wurde bereits deklariert

Ich habe die zweite Lösung von Wie kann ich "Konnte keine Schemainformationen für das Element/Attribut <xxx> finden?"

Das heißt Erstellt eine XSD mit der Schaltfläche zum Erstellen eines Schemas. Ich habe das Stylesheet in app.config in app.xsd geändert, aber jetzt bekomme ich die Warnung:

Das globale Element 'configuration' wurde bereits in app.xsd deklariert

Auch bei Namensänderung wird die Warnung angezeigt. Hat jemand eine Lösung dafür?

72
Michel Keijzers

Ich hatte ein ähnliches Problem wie die Frage, auf die Sie sich beziehen. Ich habe diese Anweisungen befolgt und alles war in Ordnung. Stellen Sie sicher, dass EnterpriseLibrary.Configuration.xsd ist in %Program Files%\Microsoft Visual Studio [version] \Xml\Schemas\ zuerst, dann mach das:

Enterprise Library installiert ein Schema in Visual Studio, das IntelliSense® zum Bearbeiten von Enterprise Library-Konfigurationsdateien im Visual Studio-XML-Editor bereitstellt. Sie müssen das Schema aktivieren, bevor Sie es verwenden können.

So aktivieren Sie das Enterprise Library-Konfigurationsschema

  1. Öffnen Sie die Konfigurationsdatei in Visual Studio, indem Sie im Projektmappen-Explorer darauf doppelklicken.

  2. Klicken Sie im Menü XML auf Schemas ..., um das Dialogfeld XML-Schemas zu öffnen.

  3. Suchen Sie das Schema mit dem Namen EnterpriseLibrary.Configuration.xsd. Dies wird automatisch installiert. Wenn es jedoch nicht in der Liste angezeigt wird, klicken Sie auf Hinzufügen, navigieren Sie zum Ordner% Programme%\Microsoft Visual Studio [Version]\Xml\Schemas \, wählen Sie EnterpriseLibrary.Configuration.xsd aus und klicken Sie auf Öffnen.

  4. Ändern Sie den Wert in der Spalte Verwenden in Dieses Schema verwenden. Klicken Sie dann auf OK.

Link zum Artikel ist hier , hoffe das hilft

35
Tommy Grovnes

Ein Neustart hat bei mir nicht funktioniert, daher möchte ich mitteilen, was funktioniert hat.

Zuerst habe ich ein Upgrade auf Windows 8 durchgeführt. Dieses Problem trat bis dahin nicht auf. Und dieses Problem trat nur in einem meiner app.config-Dateien auf. Also habe ich beschlossen, die problematische app.config mit einer guten zu vergleichen. In Visual Studio ging ich bei geöffneter app.config zu Xml -> Schemas. Mir ist aufgefallen, dass in der guten Konfiguration nur drei dieser Schemata überprüft wurden. Der Böse hatte die gleichen drei geprüft, plus eine DotNetConfig.xsd. Nachdem ich die Use -Spalte für DotNetConfig.xsd in "Automatisch" geändert hatte, wurde das Problem behoben.

enter image description here

enter image description here

173
Bob Horn

Mein Problem war, dass ich von .Net 4.5 auf .Net 4.0 umgestiegen bin. Um das Problem zu beheben, habe ich alle angekreuzten Schemata auf automatisch umgestellt.

32
Al Option

Ich hatte auch eine Weile damit zu kämpfen. Es stellte sich heraus, dass meine Version des Problems aus dem versteckten {PROJECTNAME}.SUO Datei erstellt von Visual Studio.

Ich vermute, VS wird die XSD-Schema-Zuordnungen in dieser Datei zwischenspeichern. Die Warnungen tauchten auf, nachdem ich das Zielframework geändert hatte. Sie verschwanden, nachdem ich die SUO-Datei gelöscht und VS neu gestartet hatte.

13
Ishmaeel

Bei den in der Frage beschriebenen Symptomen und bei Verwendung von Visual Studio 2013 (Update 4) konnte ich im Dialogfeld XML-Schemas [sic] feststellen, dass sowohl DotNetConfig.xsd und DotNetConfig40.xsd wurden zur Verwendung ausgewählt.

Ich verwende ein .NET Framework 4.0-Projekt.

Die beiden XSD-Dateien stehen in Konflikt miteinander und definieren jeweils dieselben Elemente, wodurch die Warnungen ausgegeben werden.

Diese Schemadateien befinden sich im Ordner %programfiles(x86)%\Microsoft Visual Studio 12.0\xml\Schemas\.

DotNetConfig.xsd Befindet sich im Unterordner 1033 Und scheint die neuere, vollständigere Version zu sein.

Unabhängig davon, welche Einstellungen ich in XML-Schemata ausgewählt habe, konnte ich weder DotNetConfig40 noch DotNetConfig deaktivieren oder entfernen. Ich habe versucht, " Remove " und den Use-Parameter von " Use this schema " auf " Automatisch "und dann" Verwenden Sie dieses Schema nicht ".

Unabhängig davon, was für eine Datei ausgewählt wurde, wurden beide zur Verwendung ausgewählt, wenn ich zum Dialogfeld zurückkehrte. Ich habe auch versucht, in eine andere Zeile zu wechseln, bevor ich " [~ # ~] ok [~ # ~] " gedrückt habe, ohne Erfolg.

Schließlich habe ich die Datei DotNetConfig40.xsd In DotNetConfig40 DO NOT USE.xsd Umbenannt, um zu verhindern, dass sie geladen wird. Dies löste sofort das Problem.

Das freut mich nicht und ich mache mir Sorgen, ob es bei anderen Projekten unerwünschte Nebenwirkungen hat. Ich werde diesen Beitrag mit meinen Ergebnissen aktualisieren.

12

Dieses Problem wurde behoben, nachdem ich die Datei im Editor, die diese Warnungen verursachte, geschlossen und neu kompiliert hatte.

6
Romonov

Nach dem Neustart des Systems ist das Problem behoben, dh ich erhalte keine Warnungen mehr in Bezug auf das Schema.

Es scheint also, dass ein Neustart (und möglicherweise ein implizites Zurücksetzen/Zurücksetzen) die Warnung beseitigt hat.

4
Michel Keijzers

Ich habe dieses Problem mit meinem VS2017 bemerkt.

Durch Ändern von DotNetConfig.xsd auf "Automatisch" wurde das Problem behoben.

enter image description here

4
omostan

Für mich ist mir aufgefallen, dass ein Haufen XML Schemas Dupliziert wurde. Ich habe einfach alle, die nicht mit Visual Studio 2017 zu tun haben, als Don't Use Markiert. Das Problem ist sofort verschwunden

3
TheGeneral

Mithilfe von Visual Studio 2015 Community Edition - beim Generieren einer Datei "web.xsd" im Stammordner meines Projekts und beim Hinzufügen zur Schemaliste wurden alle Warnungen bis auf eine gelöscht.

Das globale Element 'configuration' wurde bereits deklariert '.

Das Schließen der Datei web.config im Texteditor und das erneute Erstellen des Projekts löschten diese Warnung.

3
Randall Price

Nekromanzierung: Update 2019 mit Visual Studio 2017

Ich habe versucht, das zu tun, was andere vorgeschlagen haben:

  • Ich habe versucht, das System neu zu starten: hat nicht funktioniert.
  • öffnen Sie App.Config
  • Menü: XML - Schemas ...
  • Stellen Sie sicher, dass mehrere DotNetConfigXX.csd vorhanden sind (XX entweder emotional oder eine Zahl)
  • Ich habe versucht, sie automatisch einzustellen oder "dieses Schema nicht zu verwenden"
  • Ich habe versucht, doppelte Schemas zu entfernen

All dies hat nicht funktioniert.

Allerdings hat die Lösung von OLEG wie hier beschrieben funktioniert.

Ich musste lediglich den folgenden Teil in allen verwendeten DotNetConfigXX.xsd-Dateien (XX ist leer oder eine Zahl) durch den folgenden Code ersetzen

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

Ersetzen mit:

<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>

Vergessen Sie nicht, Ihre ursprünglichen .XSD-Dateien zu sichern!

Nach einem Neustart von Visual Studio waren die Fehler verschwunden.

1