2014-05-09 2 views
5

Tutto funzionava perfettamente fino a quando VS2013 ha iniziato a lamentarsi a caso sui tag nel mio web.config. Segnala casualmente errori privi di senso come dichiarazioni duplicate, tag casuali non esistenti in spazi vuoti casuali. Qui ci sono alcuni screenshot che dimostrano la questione:Visual Studio 2013 IntelliSense non funziona con un particolare file web.config

enter image description here

enter image description here

Ho provato a ripristinare tutte le impostazioni di Visual Studio, nulla è cambiato. Ho provato a chiudere e riaprire tutte le istanze di Visual Studi (ovviamente). Ho provato a copiare il testo, a normalizzare le terminazioni di riga in Sublime Text per terminazioni di riga di Windows, a cancellare il file di configurazione e a salvare il testo normalizzato da Sublime Text, nulla è cambiato. Non ho idea di cosa stia succedendo. Tutti i file degli altri progetti "web.config funzionano e analizzano correttamente. Ho controllato eventuali caratteri di controllo degli spazi bianchi e non ci sono caratteri di spazi bianchi nascosti nel file. Cosa potrebbe rendere VS appassionato di un particolare file web.config e funzionare perfettamente (incluso il completamento di Intellisense) con tutti gli altri?

+0

Lo hai eseguito tramite un validatore XML per assicurarti che non ci siano errori in esso che ti mancano? –

+0

sì, più di loro. nessun errore trovato. –

+0

Qual è il primo errore (quello più in alto) che sta sostenendo esiste nel documento? –

risposta

9

Ok, è stato sicuramente un errore interno con Visual Studio e da quello che vedo (tag di altre classi come XAML, che il mio progetto non ha nulla a che fare con etc) è un problema serio. Qualcosa nella cache interna è stato corrotto in qualche modo.

Ho risolto il problema:

  • soluzione di pulizia (non ha cambiato nulla, ma era il mio primo passo)
  • Copiare il testo da qualche altra parte
  • Eliminare completamente il file web.config .
  • di chiusura, la riapertura VS
  • Ri-creazione di un vuoto web.config
  • incollare il testo di nuovo al nuovo file.

Anche se sembra banale, penso che Visual Studio non ha analizzato nuovamente il file anche quando ho modificato il contenuto. Eliminando completamente il file e chiudendo VS probabilmente cancellato tutto ciò che era correlato al file dalla cache interna, e quando ho incollato il mio XML perfettamente corretto nel nuovo file, è stato costretto a rimpiazzare, risolvendo il problema.

+0

Yuck. Sembra che ogni cinque minuti che ho passato usando Eclipse, hah. –

+0

haha, rispetto a Eclipse (o Android Studio), VS è ancora una bellezza della natura :) –

+1

Grazie per aver condiviso questo ... ho avuto lo stesso problema. Quando ho chiuso lo studio visivo e l'ho riaperto, ha funzionato bene. #TheWondersOfMSVS – MizAkita

3

Per me, questo era correlato agli schemi XML utilizzati da web.config.

Ad esempio, può verificarsi se il progetto è stato creato con il targeting per .NET Framework 4.5, ma successivamente è stato modificato Target Framework su 4.0. La modifica del framework di destinazione del progetto non aggiorna gli schemi XML utilizzati da web.config. Per risolvere questo problema, apri web.config, quindi fai clic con il pulsante destro del mouse e seleziona "Proprietà". Vedrai sotto le proprietà del documento XML che puoi modificare gli schemi. In questo scenario di esempio, trovare "DotNetConfig45.xsd" e scegliere "Non utilizzare questo schema".

+0

Nello scenario mio, tutti quegli schemi che erano già selezionati, sono passati a Automatico. Incerto delle conseguenze in seguito, ma ha funzionato come non sapevo quale schema (s) da aggiornare per definire e prova ed errore. Non sono sicuro se causato dall'installazione di VS 2013 Update 5 e/o dalla modifica del framework di destinazione. – Kyle

4

Mentre il problema viene risolto eliminando il file web.config, chiudendo, riaprendo e ripristinando i file, mi piacerebbe sapere ancora cosa ha causato il problema. La risposta di Tony Rush mi ha aiutato a identificare qual era il problema di fondo.

Nel mio caso ho potuto vedere i riferimenti di schema con schemi duplicati per DotNetConfig.xsd, EntityFrameworkConfig_6_1_0.xsd e RazorCustomSchema.xsd che fa riferimento a file di schema in entrambe le directory di Visual Studio 12.0 e 14.0. Rimuovere manualmente i riferimenti ai file v12.0 non sembra fare il trucco, eliminare e ripristinare i file.

Il progetto con il problematico web.config ha cambiato versione di Framework da 4.5 a 4.5.2 e allo stesso tempo è passato da VS2013 a VS2015. Quale dei due cambiamenti ha causato il problema che non conosco.

Inoltre, i riferimenti dello schema sembrano essere memorizzati in un file delle impostazioni locali, poiché la correzione non causa alcuna modifica per il check in in TFS.

+0

Lo stesso qui. Ho modificato tutte le opzioni dello schema XML in automatico e questo ha risolto immediatamente il problema. – Wes