2015-05-21 24 views
7

tutti.Errore System.Xml.Xsl.CompiledQuery.Query.staticData durante il tentativo di eseguire il debug di XSLT in Visual Studio

Ho creato un semplice file XSLT utilizzando Visual Studio 2010 che funziona perfettamente sulla mia macchina. Tuttavia, quando il mio collega ha cercato di eseguire sul suo pc con Visual Studio 2013 è la informò che il file non può essere eseguito e generato questo messaggio:

Tentativo con il metodo 'System.Xml.Xsl.XslCompiledTransform.Load (System.Type) 'per accedere al campo' System.Xml.Xsl.CompiledQuery.Query.staticData 'non riuscito.

Quando però ho fatto un semplice copia del testo nel mio file e incollato in un nuovo file XSLT in bianco sulla sua macchina (con VS 2013) e salvato con un nome diverso, allora funziona bene, anche se è completamente identico al mio originale. È come se ci fosse qualche problema di compatibilità inversa in corso. Qualcun altro ha mai sperimentato questo e, in tal caso, conosci qualche correzione permanente, quindi non dobbiamo copiare e incollare tutto il tempo? Il file xslt viene eseguito da un'unità locale.

Molte grazie in anticipo.

+0

a meno che la fortuna fuori e qualcuno che legge ha risolto questo problema esatto, farete meglio includere il più piccolo campione di possibile che illustra questo problema. Quindi chiunque può applicare le proprie capacità analitiche al proprio problema. In bocca al lupo! – shellter

risposta

4

Cambiare la codifica da UTF-8 a ANSI (o qualsiasi altra codifica) e tornare a UTF-8 risolto per me. Non molto diverso rispetto alla creazione di un nuovo file, ma un po 'più semplice.

+0

Ho aperto i file in Notepad ++ e cambiato da "Encode in UTF-8-BOM" a "Encode in UTF-8".Sembra che avere un BOM (Byte Order Mark) confondesse Studio 2013 e XSLT –

+0

@JohnDyer potrebbe essere, o potrebbe essere semplicemente il fatto che hai cambiato la codifica. –

+1

@JonList Come visto nella mia risposta, questo sembra essere un problema con una funzionalità di sicurezza sui file scaricati da internet. Quindi la codifica è probabilmente un'aringa rossa. Probabilmente è semplicemente la modifica del file e il salvataggio del flag "scaricato da Internet". – JLRishe

1

La codifica non ha funzionato per me, ma ho una soluzione alternativa. Ottengo questo errore in VS 2015, quindi questo bug è stato intorno un po '.

Non fare in questo modo: A prova trasforma di solito ho il xslt aperto con il cursore in esso e poi, nel menu in alto, fare clic su XML> INIZIO XSLT debugging-> individuare il file xml

In questo modo: fai il contrario di sopra, cioè, apri il file XML (non xslt), quindi fai clic su xml-> avvia xslt debugging-> vai al file XSLT.

Non so perché funzioni, ma lo fa.

15

Nessuna delle due risposte qui hanno lavorato per me, ma uno dei workarounds nella segnalazione di bug MS Connect ha lavorato per me in più occasioni:

  1. aperte le proprietà del file XSLT in Esplora risorse
  2. Nella scheda Generale, cerca un pulsante Sblocca.
  3. Clic su di esso, quindi fare clic su OK

Sembra che ci sia un qualche tipo di funzionalità di sicurezza in gioco qui che rileva che il file ha avuto origine da un altro computer e si tratta di incrostazioni qualcosa nel debugger XSLT.

+0

funziona anche per me. – Rashmin

+0

Questo è sicuramente funziona! Bello che hai messo qui – goldenlimit

0

Il problema per me era che il file xslt era su un'unità di rete. Lo spostamento del file su un'unità locale sulla mia macchina ha risolto il problema.

avuto l'idea da Microsoft's feedback forum