Visual Studio visualizza errori anche se i progetti vengono compilati


265

Ho un problema con Visual Studio su una soluzione C #. Mostra errori totalmente casuali, ma i progetti vengono compilati. In questo momento, ho 33 file con errori e posso vedere tutte le linee rosse.

Ho provato a pulire / ricostruire la soluzione, chiudendo Visual Studio e persino riavviando il mio computer. Mi sono anche assicurato di eseguire i passaggi descritti in Esecuzioni di debug anche con errori del compilatore in Visual Studio. Posso modificare i file .cs e vedo i cambiamenti nella soluzione.

Qualcuno ha un'idea del perché lo fa?


3
Hai ReSharper o qualche altro componente aggiuntivo come questo installato? Possono anche causare linee rosse ondulate.
user1908061,

3
Prova a eliminare le cartelle bin e obj da ciascun progetto.
Charlie Brown,

Errori o avvisi? Se il progetto si sviluppa, significa che si tratta di avvisi. Disabilita tutti i componenti aggiuntivi e guarda come va.
Ehsan,

Abbiamo lo stesso problema con 2 delle nostre macchine sul candidato VS 2013 RC. Nessun resharper installato però. Il delemma qui è che anche se si costruisce senza problemi, nessun intellisense funzionerà perché non può "risolvere" spazi dei nomi e oggetti. Molto strano. Funziona perfettamente con altre 5 macchine.
Ryk,

Anche i conflitti irrisolti in Team Foundation Server possono essere fonte di questo problema. Ottenere la versione più recente potrebbe segnalare che ha esito positivo e che tutti i file sono stati aggiornati, ma non è sempre vero. Se vai a Esplora team> Modifiche in sospeso> Elenco a discesa Azioni> Risolvi conflitti e fai clic su "Ottieni tutti i conflitti", dovrebbe essere visualizzato se ci sono conflitti non risolti che devi risolvere.
user2310967

Risposte:


325

Se hai ReSharper, prova a svuotare la cache di ReSharper:

Nel menu, ReSharper> Opzioni> Ambiente> Generale> Cancella cache

e disabilitare e riattivare ReSharper:

Nel menu, Strumenti> Opzioni> ReSharper> Generale> Sospendi / Ripristina


182

Svuotare la cache di Resharper non mi ha aiutato nel mio caso, ho provato a sospendere / ripristinare , e anche Repair Resharper, usando l'ultimo download dal sito Web di JetBrains - nessuno di questi ha aiutato. Questo è dopo che ho provato a chiudere / riaprire VS, riavviare la macchina, ripetere, Build / Rebuild e la combinazione di questi.

È interessante notare che la sospensione di Resharper sembrava risolvere il problema dopo il 2 ° riavvio di VS, ma era tornato dopo aver abilitato Resharper <- Ho provato a fare questa sequenza 2-3 volte per garantire lo schema.

Comunque, avevo ancora problemi quando ho trovato questo articolo:

Quindi ho eliminato il file .SUO nascosto sullo stesso livello di cartella con la soluzione e risolto magicamente tutti i rossi.

Nota: per Visual Studio 2015, il file .SUO si trova nella cartella nascosta .vs / [nome_soluzione] / v14 .


7
I passaggi di Resharper non hanno funzionato neanche per me, ma è stato così. Grazie!
Justin Morgan,

4
La tua soluzione l'ha risolto per me, dopo aver riavviato Visual Studio. Grazie! :)
Moulde,

1
VS2015 - Avevo anche 1 progetto che non sarebbe stato realizzato, ma dagli errori che avrei potuto capire. Non ho dovuto chiudere VS. Appena chiusa la soluzione, eliminare .suo e riaprire la soluzione. Problema risolto.
TTT

5
Funziona ancora con VS2019, grazie! Il file .suo si trova in .vs / [nome_soluzione] / v16.
Michael Armes,

3
VS2019, ho rovinato la directory .vs, è stata ricreata al prossimo build - errore fasullo sparito.
Loren Pechtel,

92

TLDR; Scaricare e ricaricare il progetto problematico.

Quando questo accade a me, ho provato a chiudere VS e riaprirlo. Probabilmente ha funzionato circa la metà delle volte. Quando non funzionava chiudevo la soluzione, cancellavo il file .suo (o l'intera cartella .vs) e riaprivo la soluzione. Finora questo ha sempre funzionato per me (più di 10 volte negli ultimi 6 mesi), ma è leggermente noioso perché alcune cose vengono ripristinate come la modalità di costruzione, il progetto di avvio, ecc.

Dato che di solito è solo un progetto ad avere il problema, ho appena provato a scaricare quel progetto e ricaricarlo, e questo ha funzionato. La mia dimensione del campione è solo 1 ma è molto più veloce delle altre due opzioni quindi forse vale la pena tentare. Sospetto che funzioni perché scrive nel file .suo e forse corregge la parte danneggiata che stava causando l'inizio del problema.

Nota: questo sembra funzionare per VS 2019, 2017 e 2015.


7
" Ho appena provato a scaricare quel progetto e ricaricarlo, e questo ha funzionato. " Mi sento come se stessi contribuendo a un culto del carico, ma ho finito per caricare e scaricare (con pulizie e build casuali in mezzo) e alla fine ho colpito l'oro. Così strano. Questo è con VS 2017.
ruffin,

2
@ruffin - hehe. Penso che ogni risposta a questa domanda sia un "culto delle merci", ma credo che la mia sia la più veloce e meno invadente. ;)
TTT

1
L'eliminazione dell'intera cartella .vs l'ha fatto per me nella VS 2017 Community con ReSharper
Pedro Martins Timóteo da Costa

3
Scaricare e ricaricare ha funzionato anche per me nel VS 2019 CE
simonlchilds,

1
L'eliminazione della cartella .vs ha funzionato per me in VS 2019 senza ReSharper, semplicemente VS. GRAZIE!!!
Latorre tedesco,

39

Ho pulito la soluzione, ho chiuso VS, l'ho riaperta, ho creato una soluzione e le linee rosse non risolte sono state pulite e la build è riuscita.


2
Questi passaggi, seguiti esattamente, hanno funzionato per me. La semplice pulizia e costruzione non funzionerebbe per me.
JasonCoder,

2
Spegnilo e riaccendilo ... pensi che lo saprei provare ormai. +1
iandisme

Questo ha risolto il problema! Ma cosa l'ha causato al primo posto !?
DiligentKarma,

2
Non ne ho idea. Trovo che Visual Studio sia l'IDE più instabile che abbia mai usato. Si blocca, si blocca spesso e mostra strani errori ogni tanto. A dire il vero, ho smesso di contare i problemi.
pixel

Seguire questi esatti passaggi non ha risolto il problema per me (in VS2015).
Tim

29

Ho scoperto che ciò accade frequentemente quando si utilizza Git in Visual Studio 2017, cambiando rami in cui vi sono modifiche al codice dipendenti . Anche se il progetto verrà compilato correttamente, rimarranno errori nell'elenco degli errori.

Questi errori sono spesso problemi di spazio dei nomi e riferimenti mancanti, anche quando esiste il riferimento alla libreria.

Risolvere:

  • Chiudi Visual Studio
  • Elimina il file {sln-root} .vs \ SlnName \ v15.suo (nascosto)
  • Riavvia Visual Studio

Grazie per questo suggerimento. Ha risolto un problema per noi con VS 2017 (senza aggiornamenti). FWIW, questo è successo a noi dopo aver eliminato e verificato un ramo che era stato riformulato sul telecomando.
Mike Atkisson,

1
Sebbene questa soluzione non abbia risolto il mio problema, penso che questo problema sia iniziato dopo aver cambiato le filiali con modifiche senza commit (perché dovevo applicarle a un'altra filiale)
CularBytes

Questo è esattamente il mio problema. Grazie mio salvatore
Dinh Tran il

@CularBytes Potrebbe valere la pena riporre le modifiche prima di cambiare ramo. git stash, switch branch, git stash pop
Rebecca,

18

Ho provato tutte e 6 le opzioni, niente ha funzionato per me. Di seguito la soluzione ha risolto il mio problema.

Chiudi VS. Elimina la cartella ".vs" nascosta accanto al file della soluzione. Riavvia VS e carica la soluzione.


sembra che ci sia una nuova causa per questo problema, e questa è la nuova soluzione a questo problema. Conosco altre 3 persone che anche in pochi giorni dopo aver pubblicato questo improvvisamente si sono imbattuti in questo problema.
Gerrie Pretorius,

Doveva fare lo stesso di Moshi. Non sembra essere un file .suo quando si esegue da VS 2019. Si sarebbe pensato che avrebbero risolto questo problema ormai ... * brontolare brontolare brontolare *
Mike Loux

Anche per me biforco in vs2017
Nejc Galof il

1
@MikeLoux Dai un'occhiata alla risposta di Neolisk e vedrai che ha sottolineato che il file .suo è ora nella cartella .vs, quindi tutto ciò che devi fare è eliminare quel file, non l'intera cartella. Non che questo sia particolarmente soddisfacente!
Avrohom Yisroel,

Avrohom: l'ultimo bit lo riassume perfettamente. No, non è affatto soddisfacente. E, sì, credo che alla fine ho trovato il file in cui tu e Neolisk avete sottolineato e l'ho fatto le poche volte in cui si è ripresentato (non altrettanto spesso, per fortuna). Quindi ... questo è qualcosa, immagino. :-)
Mike Loux,

12

Ho avuto un problema come questo in cui Intellisense non sembrava riconoscere l'esistenza di un progetto (molti errori "non riesco a trovare questo tipo", "questo spazio dei nomi non esiste", ecc.).

Rimuovere e aggiungere nuovamente il riferimento al progetto in tutti i progetti di riferimento risolverebbe il problema, ma la causa sottostante potrebbe essere risolta modificando il file .proj del progetto problema.

Nella parte superiore del file "csproj "del progetto" mancante "c'è un elemento:

<ProjectGuid>{GUID}</ProjectGuid>

e in tutti i progetti di riferimento i file .csproj erano riferimenti di progetto:

<ProjectReference Include="..\OffendingProject\OffendingProject.csproj">
  <Project>{ANOTHER-GUID}</Project>
  <Name>Offending Project</Name>
</ProjectReference>

Il GUID di riferimento non corrisponde al GUID del progetto. La sostituzione {GUID}sopra ha {ANOTHER-GUID}risolto il problema senza dover passare attraverso tutti i progetti di riferimento.


Questo ha funzionato per me anche se era un pacchetto nuget. Mi sono assicurato che il percorso rimanesse relativo nel file .csproj (letteralmente nulla è cambiato nel DIFF TFS), ma questo ha reso VS2017 STFU sugli errori inesistenti.
BrainSlugs83

1
Ho dovuto solo aggiungere nuovamente un singolo riferimento al progetto e tutti i riferimenti ai problemi aggiornati
robaudas

Nessuna delle altre soluzioni ha funzionato per me, questa ha fatto il trucco :)
Pablo Carrasco Hernández

12

Ecco una raccolta di risposte popolari. Valuti l'OP della risposta se ti ha aiutato:

Opzione 1: Clean, Build and Refresh ( opzione @Mike Fuchs )

Come accennato da @Mike Fuchs , prova le seguenti operazioni:

Nel menu, Genera> Soluzione pulita

E

Nel menu, Genera> Crea soluzione

e seleziona il progetto in questione e fai clic sul pulsante Aggiorna:

Pulsante Aggiorna

Opzione 2: pulisci, chiudi, riavvia e costruisci ( opzione @Pixel )

Come menzionato @Pixel , prova la seguente sequenza di operazioni:

  1. Pulisci la soluzione
  2. Chiudi Visual Studio
  3. Apri Visual Studio
  4. Crea soluzione

Opzione 3: cancellare la cache di ReSharper ( opzione @GammaOmega )

Se hai ReSharper, prova a svuotare la cache di ReSharper:

Nel menu, ReSharper> Opzioni> Ambiente> Generale> Cancella cache

e disabilitare e riattivare ReSharper:

Nel menu, Strumenti> Opzioni> ReSharper> Generale> Sospendi / Ripristina

Opzione 4: elimina il file .suo ( opzione @Neolisk )

Come accennato da @Neolisk , l'eliminazione del file .suo potrebbe risolvere il problema. Per Visual Studio 2015, il file si trova in:

[Percorso della soluzione] /. Vs / [Nome soluzione] /v14/.suo

E per Visual Studio 2017:

[Percorso della soluzione] /. Vs / [Nome soluzione] /v15/.suo

Si noti che la directory .vs è nascosta.

Opzione 5: Scarica e ricarica progetto ( opzione @TTT )

Come accennato da @TTT , prova a scaricare il progetto che causa problemi:

In Esplora soluzioni, fare clic con il pulsante destro del mouse sul progetto, Scarica progetto.

E ricaricandolo

In Esplora soluzioni, fare clic con il pulsante destro del mouse sul progetto, Ricarica progetto.

Opzione 6: rimuovere e aggiungere riferimento a Microsoft.CSharp ( opzione @Guilherme )

Come accennato da @Guilherme , prova a rimuovere e aggiungere il riferimento a "Microsoft.CSharp" dai progetti che presentano problemi.

In Esplora soluzioni, espandere il progetto, espandere "Riferimenti", fare clic con il tasto destro del mouse su "Microsoft.CSharp" e Rimuovi.

Quindi, fare clic con il tasto destro su Riferimenti> Aggiungi riferimento, selezionare "Microsoft.CSharp" dall'elenco e fare clic su OK


L'opzione 6 l'ha fatto. Ho dovuto fare clic sul link @Guilherme per votare perché è (ora?) In un'altra domanda.
Gbarry,

Nessuna delle precedenti ha funzionato per me, con oltre 80 progetti in soluzione
Efe

10

Elimina il percorso del file nascosto = la tua soluzione \ .vs \ la tua soluzione Nome \ v15 \ .suo


1
ha funzionato anche per me. VS 2019. I progetti WPF hanno continuato a mostrare errori relativi ai controlli inesistenti, ma hanno funzionato bene.
Flemming Bonde Kentved,


5

Ho notato che a volte quando si cambiano i rami git, Visual Studio (2017) non riconoscerà i tipi da alcuni file che erano stati aggiunti nel secondo ramo. L'eliminazione della cartella .vs risolve il problema, ma elimina anche tutte le impostazioni dell'area di lavoro. Questo trucco sembra funzionare bene per me:

  1. Esplora soluzioni -> Trova il file con la classe non riconosciuta al suo interno.
  2. Fai clic su Mostra tutti i file nella parte superiore di Esplora soluzioni.
  3. Fare clic con il tasto destro del mouse sul file -> Escludi dal progetto.
  4. Fare nuovamente clic con il tasto destro del mouse sul file -> Includi nel progetto.

In questo modo Intellisense analizza il file che ha perso durante il cambio di rami.


4

La seguente soluzione ha funzionato per me

1 - Chiudi VS

2 - Elimina la cartella .vs

3 - Apri VS

4 - Crea soluzione


3

Forse provi a ripristinare la cache di intellisense. Ho avuto un problema simile in Visual Studio 2012 quando lavoravo in un grande progetto con molte definizioni di classe parziali. Ridurre i parziali ha risolto parzialmente il problema, cancellando anche la cache di intellisense - per un po '.


3

A volte devo fare una pulizia personalizzata esaminando tutti i progetti ed eliminando manualmente le cartelle "bin" e "obj". Per vederli in Visual Studio, dovrai abilitare file e cartelle nascosti per ciascun progetto. Al termine, ricostruire la soluzione.


3

L'eliminazione della .vscartella ha risolto il mio problema.

Ma ha anche ripristinato le impostazioni correnti della mia soluzione in VS. Ad esempio, i miei progetti scaricati nella soluzione sono stati ricaricati e tutti i documenti bloccati e aperti sono stati chiusi anche quando ho riavviato il VS.


2

0 - Fare clic con il tasto destro sulla soluzione e pulire la soluzione

1 - Chiudi VS

2 - Elimina il file .suo del progetto

3 - Apri VS

4 - Crea soluzione


2

Un mio collega ha riscontrato questo problema oggi. Abbiamo provato molti dei consigli qui e nessuno ha funzionato tranne la soluzione descritta di seguito.

Problema:

Il progetto funziona correttamente, ma Intellisense non riesce a riconoscere determinati tipi e contrassegna determinate usingistruzioni come non valide.

Soluzione:

Cambia la 'Piattaforma soluzioni' (in VS 2017 questo è il menu a discesa accanto al menu a discesa Configurazione soluzione e ha valori come x86, x64, AnyCPU, Piattaforme miste, ecc.) In AnyCPU .

La piattaforma per il tuo progetto può variare, ma sembra che alcuni riferimenti potrebbero non essere validi per tutte le piattaforme.


1

Per il mio caso specifico si trattava di un riferimento al servizio che un altro sviluppatore si è unito al ramo principale. Il che andava benissimo, tranne che l'evidenziazione della sintassi non riusciva a risolvere la classe di servizio generata e la fonte era tutta sottolineata in rosso. Pulizia, ricostruzione, riavvio non hanno fatto nulla.

Tutto quello che dovevo fare era aggiornare il riferimento del servizio e VS è riuscita a mettere insieme i pezzi dietro le quinte. Nessuna modifica nel codice sorgente o nei file generati.


1

Ho appena riscontrato questo problema dopo aver ripristinato un commit git che ha aggiunto i file al mio progetto.

La pulizia e la ricostruzione del progetto non hanno funzionato, anche se ho chiuso VS tra ogni passaggio.

Ciò che alla fine ha funzionato è stato rinominare il file in qualcos'altro e cambiarlo di nuovo. : Facepalm:


1

Dopo aver provato tutte le opzioni elencate ho scoperto l'ennesimo motivo per cui questo può accadere. Se qualcuno ti ha inviato il codice sorgente come zip o hai scaricato un zip, Windows potrebbe aver bloccato tutti i file. 2 modi per risolverlo:

Metodo 1:

Fare clic con il tasto destro del mouse sul file Zip originale -> Selezionare "Sblocca" -> Fare clic su Applica

Metodo 2:

Se questa non è un'opzione, piuttosto che aprire le proprietà su ogni file nella cartella della soluzione, basta aprire Power Shell e sbloccare in modo ricorsivo usando quanto segue:

Get-ChildItem -Path 'C:\<ROOT FOLDER OF SOLUTION>\' -Recurse | Unblock-File

1
  1. per prima cosa chiudi la soluzione.
  2. quindi eliminare il file della cache della soluzione (nella posizione C: \ Utenti \ Documenti \ Visual Studio \ File di backup / file cache del progetto)
  3. quindi eliminare il file .suo
  4. quindi soluzione aperta e compilata.

Spero di risolvere il tuo problema


1

Aveva questo problema al lavoro (con VS2017 in esecuzione). Ho provato tutte le risposte qui. Nessuna gioia.

Il progetto sarebbe andato bene, ma si lamentava del fatto che non era possibile trovare spazi / tipi di nomi. Il rosso si agita dappertutto. Molti errori nella finestra Elenco errori.

La mia soluzione conteneva 3 progetti.

Ho scoperto che 3 riferimenti alla libreria NuGet per uno dei progetti erano fuori linea. Consolidate le versioni della libreria di riferimento e Bingo.

Spero che questo aiuti qualcuno.

Brett.



0

A volte, se si pulisce semplicemente la soluzione, gli errori stanno scomparendo, ma possono eventualmente tornare dopo un po 'o alla build successiva.


0

Ho risolto questo problema con un singolo tipo non riconosciuto da Visual Studio che mostrava il red squiggle anche se la soluzione è stata creata correttamente. Ho notato che in Esplora soluzioni il file non aveva la freccia di espansione a sinistra che mostra le classi e le proprietà durante l'espansione.

La correzione consisteva nell'escludere il file dal progetto e salvare / compilare ciò che ha prodotto un errore previsto, quindi includere il file nel progetto e salvare e compilare.

Dopo aver eseguito questi passaggi, Visual Studio ha iniziato a riconoscere nuovamente il mio tipo. Guardando il diff in git sembra che il problema fosse dovuto a terminazioni di riga non corrispondenti alla <Compile Include="..." />riga del mio file .csproj.


0

nel mio caso, vs non ha mai mantenuto gli spazi dei nomi importati nelle proprietà del progetto> riferimenti

quando ho provato ad aggiungerli / controllarli di nuovo, non sono riuscito e ho lanciato un errore e quando il progetto salvato vs si è bloccato. Quando ho riaperto tutti gli spazi dei nomi importati standard (system.data ecc ...) sono stati nuovamente contrassegnati e quindi è stato riconosciuto tutto senza errori


0

TL; DR: esegue una reinstallazione pulita di Visual Studio

Dopo aver perso diverse ore, non riuscivo ancora a risolverlo per Visual Studio 2017. Ho quindi installato Visual Studio 2019 PREVIEW e all'improvviso IntelliSense mi mostra di nuovo i membri delle classi STL (cosa che non succede con Visual Studio 2017 ).

Quindi, la mia ipotesi è che potrebbe esserci anche qualcosa di sbagliato in Visual Studio stesso (forse qualcosa nella directory della cache o in generale qualcosa sul tuo PC che non è direttamente correlato a una soluzione specifica) che può essere risolto da un re pulito e completo -installazione di Visual Studio. Lo so, questa è una stupida "soluzione", ma nel mio caso, solo una nuova installazione di Visual Studio (2019) ha avuto un effetto.

Come già accennato, nel mio caso, erano interessate solo le classi STL. IntelliSense non mostrerebbe i loro membri che è strano. Ho pensato che potrebbe avere qualcosa a che fare con le intestazioni precompilate. Da qualche parte ho letto che l'STL e il progetto dovrebbero essere sullo stesso disco e metterli sullo stesso dovrebbe risolvere il problema. Ma nessuna di queste rotte ha portato al successo.


0

Ho scoperto che ciò può accadere se il progetto referenziato ha come target una versione superiore del framework rispetto al progetto che sta provando a usarlo. Puoi capire se questo è il problema andando nella finestra di output e cercando qualcosa di simile a questo:

Il riferimento principale "my_reference" non può essere risolto perché è stato creato rispetto al framework ".NETFramework, Version = v4.7.2". Questa è una versione superiore rispetto al framework attualmente mirato ".NETFramework, Version = v4.7".

La soluzione è cambiare il quadro di destinazione di uno o l'altro dei progetti.


0

I miei sintomi in VS2019 erano che avrei costruito con alcuni errori. Quindi correggevo gli errori e la build funzionava, come mostrato nella finestra Output. Ma la finestra Errori mostrava ancora i vecchi errori. Potrei farlo bene. La chiusura di VS2019 e la riapertura hanno risolto il problema, ma solo per un po '. Ciò è iniziato con la versione 16.4.3

Questa soluzione sembra funzionare per me:

Deseleziona Strumenti-> Opzioni-> Progetti e soluzioni-> Generale-> Consenti inizializzazione progetto parallela

Ho trovato questa correzione sepolta nei commenti qui: https://developercommunity.visualstudio.com/content/problem/483450/vs-2019-intellisense-reports-compile-errors-when-r.html


-1

Prova a passare il mouse sopra gli elementi sottolineati. Normalmente dovrebbe dirti qual è il problema. Per visualizzare un elenco di tutti gli errori / avvisi, vai a Visualizza => Elenco errori. Una tabella dovrebbe aprirsi nella parte inferiore dell'IDE con tutti gli errori / avvisi elencati.


Ci sono linee ondulate in classi casuali, ma non visualizzo alcun errore nell'elenco degli errori. Inoltre, i progetti costruiscono perfettamente. Sembra che sia correlato a Intellisense.
GammaOmega,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.