Fix: Das globale Element 'configuration' wurde bereits deklariert

78

Ich habe die zweite Lösung zum Auflösen von "Schemainformationen für das Element / Attribut <xxx> konnten nicht gefunden werden" verwendet.

Dh eine XSD mit der Schaltfläche zum Erstellen eines Schemas erstellt. Ich habe das Stylesheet in app.config in app.xsd geändert, aber jetzt erhalte ich die Warnung:

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

Auch beim Ändern des Namens wird die Warnung angezeigt. Hat jemand eine Lösung dafür?

Michel Keijzers
quelle

Antworten:

38

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 zunächst sicher, dass das vorhanden EnterpriseLibrary.Configuration.xsdist %ProgramFiles%\Microsoft Visual Studio [version]\Xml\Schemas\, und führen Sie dann Folgendes aus:

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 Konfigurationsschema für die Unternehmensbibliothek

  1. Öffnen Sie die Konfigurationsdatei in Visual Studio, indem Sie im Projektmappen-Explorer darauf doppelklicken.
  1. Klicken Sie im XML-Menü auf Schemas ..., um das Dialogfeld XML-Schemas zu öffnen.
  1. 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 und navigieren Sie zum Ordner% Programme% \ Microsoft Visual Studio [Version] \ Xml \ Schemas. Wählen Sie dann EnterpriseLibrary.Configuration.xsd aus und klicken Sie auf Öffnen.
  1. Ändern Sie den Wert in der Spalte "Verwenden" in "Dieses Schema verwenden". Klicken Sie dann auf OK.

Der Link zum Artikel ist hier , hofft, dass dies hilft

Tommy Grovnes
quelle
Danke ... aber ich kann das Problem nicht mehr reproduzieren. Wenn ich meinen Computer neu gestartet habe (was ich selten mache), werden die Warnungen entfernt, sodass ich derzeit nicht feststellen kann, ob Ihre Lösung funktioniert. Aber da Sie eine Lösung gegeben haben, habe ich sie trotzdem positiv bewertet.
Michel Keijzers
9
In meinem Fall befand sich mit dem in der Frage beschriebenen Problem unter Verwendung von Visual Studio 2013 keine EnterpriseLibrary.Configuration.xsd auf dem Computer.
Charles Oppermann
7
Dies hat mich zumindest in die richtige Richtung geschickt - die VS 2013-Schemas wurden in VS 2015 geladen. Setzen Sie sie auf Auto und der Fehler ist verschwunden.
Peter T. LaComb Jr.
6
Gleiches hier @PeterLaCombJr. Ich habe alle, die "Verwenden" waren, auf "Automatisch" zurückgesetzt und die Fehler sind verschwunden. VS 2017 hat meine app.config erneut korrekt überprüft und mir IntelliSense gegeben.
Ahwm
was schließlich dauerhaft für mich funktionierte, was die .suo wie unten erwähnt zu löschen
George Birbilis
186

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

Zuerst habe ich gerade ein Upgrade auf Windows 8 durchgeführt. Dieses Problem trat vorher nicht auf. Und dieses Problem trat nur in einer meiner app.config-Dateien auf. Also habe ich beschlossen, die problematische app.config mit einer guten zu vergleichen. In Visual Studio ging ich mit geöffneter app.config zu Xml -> Schemas. Mir ist aufgefallen, dass in der guten Konfiguration nur drei dieser Schemas überprüft wurden. Der schlechte hatte die gleichen drei überprüft, plus eine DotNetConfig.xsd. Nachdem ich die UseSpalte für DotNetConfig.xsd auf automatisch geändert hatte , verschwand das Problem.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Bob Horn
quelle
6
Es war DotNetConfig.xsd für mich. Ich frage mich, ob es an der Änderung der .net-Build-Version lag, da ich auch eine DotNetConfig45 bemerkte.
Adam
6
Wenn Sie vor der Auswahl einer anderen Zeile auf OK klicken, wird die Änderung nicht erkannt.
AaronLS
2
Das Problem wurde behoben. Vielen Dank
Vetras
5
Das hat mir nicht geholfen. Unabhängig davon, was ich getan habe: "Nicht verwenden", "Automatisch" oder "Entfernen", wurden sowohl DotNetConfig40.xsd als auch DotNetConfig.xsd ausgewählt. Ich habe versucht sicherzustellen, dass ich nach der Auswahl eine andere Zeile ausgewählt habe. Ich musste DotNetConfig.xsd schließlich in "DotNetConfig DO NOT USE.xsd" umbenennen, um das Laden zu verhindern.
Charles Oppermann
1
Ich öffnete app.config bemerkte die Nachricht. Als nächstes ging ich zu XML >> Schemas >> Ich bemerkte DotNetConfig.xsd und DotNetConfig45.xsd. Ich habe für DotNetConfig.xsd die [Verwendung] in Automatisch geändert. Visual Studio 2017 neu gestartet und es wurde jetzt gelöst.
JuFo
33

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.

Al Option
quelle
4
Sie finden Schemata im Eigenschaftenfenster der Datei app.config. Klicken Sie auf die Schaltfläche Schema-Ellipse und ersetzen Sie jedes Häkchen durch Automatisch aus der Dropdown-Liste.
RobCroll
Ich habe versucht, das fehlerhafte Schema einzeln zu entfernen, aber es kam immer wieder zurück. Erst als ich alle Schemas auf automatisch eingestellt hatte, wurde das Schema, das ich entfernen wollte, tatsächlich verlassen.
Daniel Gimenez
18

Ich hatte auch eine Weile damit zu kämpfen. Es stellte sich heraus, dass meine Version des Problems aus der {PROJECTNAME}.SUOvon Visual Studio erstellten versteckten Datei stammt .

Ich vermute, VS wird die XSD-Schemazuordnungen in dieser Datei zwischenspeichern. Die Warnungen wurden angezeigt, nachdem ich das Zielframework geändert hatte, und verschwanden, nachdem ich die SUO-Datei gelöscht und VS neu gestartet hatte.

Ishmaeel
quelle
3
Ich hatte ein ähnliches Problem mit dem VS 2017 RC und dies funktionierte auch. Danke
TrtlBoy
4
Es half. In meinem Fall befand sich die Datei in {solution} /. Vs / {project} /v14/.suo
Yan F.
2
Dies funktionierte auch in der aktuellen Version von VS 2017!
Beliebige
danke, dies hat es dauerhaft behoben (das Umbenennen der .xsd-Datei in _.xsd hat auch funktioniert). Übrigens endete das Löschen der .suo mit der DotNetConfig.xsd und entfernte die DotNetConfig45.xsd aus der Liste (hatte eine MVC5-App [die kürzlich von MVC4 konvertiert worden war] und einige Konsolen-Apps und -Bibliotheken von 4.5 auf 4.7.2 konvertiert) bevor die Ausgabe erschien)
George Birbilis
Übrigens, wie ich unter zoomicon.wordpress.com/2019/04/04/ erwähnt habe. Ich habe gerade eine ".suo" -Datei ohne Dateinamen gefunden, hatte nur die Dateierweiterung und habe sie gelöscht
George Birbilis
12

Mit den in der Frage beschriebenen Symptomen und unter Verwendung von Visual Studio 2013 (Update 4) konnte ich im Dialogfeld " XML-Schemas " sehen, dass beide DotNetConfig.xsdund DotNetConfig40.xsdzur Verwendung ausgewählt wurden.

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 sind im %programfiles(x86)%\Microsoft Visual Studio 12.0\xml\Schemas\Ordner enthalten.

DotNetConfig.xsdbefindet sich im 1033Unterordner und scheint die neuere, vollständigere Version zu sein.

Unabhängig davon, welche Einstellungen ich in XML-Schemas ausgewählt habe, konnte ich weder DotNetConfig40 noch DotNetConfig abwählen oder entfernen . Ich habe versucht, " Entfernen " und den Parameter " Verwenden " von " Dieses Schema verwenden " in " Automatisch " und dann " Dieses Schema nicht verwenden " zu ändern .

Unabhängig davon, was für beide Dateien ausgewählt wurde, wenn ich zum Dialog zurückkehren würde, würden beide zur Verwendung ausgewählt. Ich habe auch versucht, in eine andere Zeile zu wechseln, bevor ich vergeblich auf " OK " geklickt habe.

Schließlich habe ich die DotNetConfig40.xsdDatei umbenannt , um DotNetConfig40 DO NOT USE.xsdzu verhindern, dass sie geladen wird. Dies löste das Problem sofort.

Ich bin nicht zufrieden damit und mache mir Sorgen, ob es bei anderen Projekten unerwünschte Nebenwirkungen haben wird. Ich werde diesen Beitrag mit meinen Ergebnissen aktualisieren.

Charles Oppermann
quelle
1
Ich war auch nicht erfolgreich in der Verwendung der GUI, ich habe die generische DotNetConfig.xsd im Unterordner 1033 \ umbenannt und das hat mein Problem sofort behoben.
Brunis
1
danke, das hat funktioniert, aber das Löschen der .suo scheint die beste Lösung zu sein. Dadurch blieb die DotNetConfig.xsd in der Schemaliste (entfernte die DotNetConfig45.xsd, die auch dort war, nachdem ich von 4.5 auf 4.7.2 konvertiert hatte)
George Birbilis
6

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

Romonov
quelle
5

Ich habe dieses Problem bei meinem VS2017 festgestellt.

Das Ändern von DotNetConfig.xsd auf "Automatisch" löste das Problem.

Geben Sie hier die Bildbeschreibung ein

Omostan
quelle
3
Dies scheint nicht dauerhaft zu funktionieren (hat bei mir nur einmal für eine Weile funktioniert). Löschen Sie die .suo-Datei und öffnen Sie sie stattdessen erneut
George Birbilis,
4

Nach dem Neustart des Systems ist das Problem behoben, was bedeutet, dass ich keine Warnungen mehr bezüglich des Schemas erhalte.

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

Michel Keijzers
quelle
4

Für mich ist mir aufgefallen, XML Schemasdass einige davon dupliziert wurden. Ich habe sie einfach als Don't Usealle markiert , die nicht mit Visual Studio 2017 zusammenhängen. Das Problem ist sofort verschwunden

Die allgemeine
quelle
3

Verwenden von Visual Studio 2015 Community Edition - Generieren einer web.xsd im Stammordner meines Projekts und Hinzufügen dieser zur Schemaliste löschte alle Warnungen bis auf eine.

Das globale Element 'Konfiguration' wurde bereits deklariert.

Durch Schließen der Datei web.config im Texteditor und erneutes Erstellen des Projekts wurde diese Warnung gelöscht.

Randall Preis
quelle
2

Nekromantie: 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 - Schemata ...
  • Stellen Sie sicher, dass es mehrere DotNetConfigXX.csd gibt (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

Das alles hat nicht funktioniert.

Die hier beschriebene Lösung von OLEG hat jedoch funktioniert.

Ich musste lediglich den folgenden Teil aller 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.

Harald Coppoolse
quelle
Danke, ich habe dieses Problem bestanden, aber es ist gut für andere, zu sehen, dass es eine Lösung gibt. upvoted.
Michel Keijzers
2
Löschen Sie einfach die .suo-Datei
George Birbilis