2015-05-21 16 views
7

jeder.System.Xml.Xsl.CompiledQuery.Query.staticData Fehler beim Debuggen von XSLT in Visual Studio

Ich habe eine einfache XSLT-Datei mit Visual Studio 2010 erstellt, die auf meinem Rechner einwandfrei funktioniert. Aber als mein Kollege versuchte es auf ihrem PC mit Visual Studio 2013 laufen sie informiert sie, dass die Datei nicht ausgeführt werden konnte, und erzeugt diese Meldung:

Versuch nach der Methode ‚System.Xml.Xsl.XslCompiledTransform.Load (System.Type) ', um auf das Feld' System.Xml.Xsl.CompiledQuery.Query.staticData 'zuzugreifen, ist fehlgeschlagen.

Wenn ich aber eine einfache Kopie des Textes in meiner Datei habe und es in eine neue leere xslt-Datei auf ihrer Maschine geklebt (mit VS 2013) und speicherte es mit einem anderen Namen dann auch ganz gut läuft, obwohl es ist völlig identisch mit meinem Original. Es ist, als gäbe es ein Problem mit der umgekehrten Kompatibilität. Hat jemand anderes dies erfahren und wenn ja, kennen Sie eine dauerhafte Lösung, sodass wir nicht ständig kopieren und einfügen müssen? Die XSLT-Datei wird von einem lokalen Laufwerk ausgeführt.

Vielen Dank im Voraus.

+0

, wenn Sie Glück und jemand liest genau dieses Problem wurde behoben, sollten Sie besser tun, um die kleinste Probe möglich, das dieses Problem veranschaulicht aufzunehmen. Dann kann jeder seine analytischen Fähigkeiten auf Ihr Problem anwenden. Viel Glück! – shellter

Antwort

4

Ändern Sie die Codierung von UTF-8 zu ANSI (oder eine andere Codierung) und zurück zu UTF-8 repariert es für mich. Nicht viel anders als eine neue Datei zu erstellen, aber ein bisschen einfacher.

+0

Ich habe die Dateien in Notepad ++ geöffnet und von "Encode in UTF-8-BOM" in "Encode in UTF-8" geändert.Es sieht so aus als ob eine BOM (Byte Order Mark) Studio 2013 verwechselt hat und XSLT –

+0

@JohnDyer sein könnte, oder es könnte einfach die Tatsache sein, dass Sie die Kodierung geändert haben. –

+1

@JonList Wie in meiner Antwort zu sehen, scheint dies ein Problem mit einer Sicherheitsfunktion für Dateien zu sein, die aus dem Internet heruntergeladen werden. Also ist die Kodierung wahrscheinlich ein Ablenkungsmanöver. Es ist wahrscheinlich einfach, dass das Ändern der Datei und das erneute Speichern die Flagge "aus dem Internet heruntergeladen" gelöscht hat. – JLRishe

1

Codierung funktionierte nicht für mich, aber ich habe einen Workaround. Ich bekomme diesen Fehler in VS 2015, so dass dieser Fehler seit einiger Zeit besteht.

Sie es auf diese Weise nicht tun: Zum Test verwandelt ich in der Regel die Xslt haben offen mit dem Cursor in sie und dann im oberen Menü klicken Sie auf xml-> starten Xslt debugging-> in die XML-Datei durchsuchen

Tun Sie es so: tun Sie das Gegenteil von oben, das heißt, haben Sie die XML-Datei geöffnet (nicht die Xslt), dann klicken Sie auf Xml-> Start Xslt Debugging-> Durchsuchen zu XSLT-Datei.

Nicht sicher, warum es funktioniert, aber es tut.

15

Keines der beiden Antworten hier für mich gearbeitet, aber eine der workarounds in der MS-Connect Bug-Report für mich mehrfach gearbeitet:

  1. Öffnen Sie die Eigenschaften des XSLT-Datei in Windows Explorer
  2. Suchen Sie auf der Registerkarte Allgemein nach einer Schaltfläche zum Entsperren.
  3. Klicken Sie darauf, dann auf OK klicken

Es scheint, wie es irgendeine Art von Sicherheitsfunktionen im Spiel ist hier, der erkennt, dass die Datei von einem anderen Computer entstanden und es ist etwas in den XSLT-Debugger Fouling auf.

+0

es funktioniert auch für mich. – Rashmin

+0

Das funktioniert definitiv! Schön, dass du hier platzierst – goldenlimit

0

Das Problem für mich war, dass die Xslt-Datei auf einem Netzlaufwerk war. Durch Verschieben der Datei auf ein lokales Laufwerk auf meinem Computer wurde das Problem behoben.

habe die Idee von Microsoft's feedback forum

Verwandte Themen