6

Ich entschied, dass ich einige Rewrite-Regeln in unsere web.release.config- und web.staging.config-Dateien verschieben wollte, damit die Rewrite-Regeln für die Umgebungen, in denen unsere verschiedenen Konfigurationen ausgeführt werden, relevant sind.Wie aktiviere ich IntelliSense in VS 2013 für <rewrite> in transform.config?

IntelliSense nicht diese Entscheidung gefällt und würde nicht Ball spielen, weil:

xdt: Transform "Attribut nicht deklariert"

für das <rewrite> Element.

Ich sah RuslanY's solution here und ich hielt auf dieser Seite mehrere Lösungen, aber keiner von ihnen zur Verfügung gestellt, die Lösung für dieses spezielle Problem in VS 2013 mit .NET v4.5. Ich habe auch this old MSDN post here studiert und sichergestellt, dass die Schema-Eigenschaft der Web.config, Web.Staging.config und Web.Release.config auf die richtige Transformationsschema-Version zeigen.

Es scheint, die einzige Lösung ist, die DotNetConfig [v] XSD-Dateien bearbeiten und

<xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict"/> 

bis zum Ende eines jeden <xs:complexType> in jedem von <xs:element name="rewrite"> ‚s Elemente (und <xs:element name="rewrite">‘ s Markup selbst) hinzufügen um sie mit anderen Elementen in Einklang zu bringen, die gutes IntelliSense haben.

Ist dies in diesem Fall die richtige Lösung (weil es merkwürdig erscheint, dass diese Einträge nicht schon existieren)? Gibt es eine bessere Möglichkeit, diese Einträge zu den xsd-Dateien hinzuzufügen, damit sie bei einem VS-Update nicht verloren gehen (und daher leichter auf eine VS-Installation angewendet werden können)?

Oder gibt es eine andere Lösung, die ich bereitstellen sollte?

+1

Ich sehe die gleiche Warnmeldung, xdt: Transform "Attribut wird nicht deklariert" aber die Transformation scheint in Ordnung zu arbeiten. Scheint so, als müsste Microsoft die Schemas reparieren. – PrgTrdr

+0

@PrgTrdr Mit dem oben in meiner Frage beschriebenen Fix, soweit ich das im Moment sagen kann ... Ich werde es als eine Antwort hinzufügen, wenn ich sicherer bin, dass dies keine Bugs einbringt. – lukkea

+0

Ich habe gerade das gleiche Problem in einem 4.5.1-Projekt gefunden und die einfachere Lösung bestand darin, das Überschreiben-Element mit "Ersetzen" zu transformieren. – lukkea

Antwort

0

Wie ich in meiner Frage sagen: Es scheint, die einzige Lösung ist, die DotNetConfig [v] XSD-Dateien zu bearbeiten und

<xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict"/> 

bis zum Ende eines jeden <xs:complexType> in jedem von <xs:element name="rewrite"> ‚s Elemente hinzufügen (und <xs:element name="rewrite"> Markup selbst), um sie mit anderen Elementen in Einklang zu bringen, die gutes IntelliSense haben.