Le compilazioni del progetto Visual Studio 2015 non sono riuscite ma nessun errore


110

Il mio progetto costruisce tutti falliscono ma non viene mostrato alcun errore. Ho provato a pulire e ricostruire, ma non ha funzionato.

Ho cambiato il livello di dettaglio dell'output di MSBuild in "Diagnostic" sperando che mi aiutasse a identificare il problema e ora sono bloccato. Ecco come appare l'output:

1>Project 'ProjectMM.Data.Models' is not up to date. Input file 'C:\Projects\ProjectMM\ProjectMM.Data.Models\ProjectMM.Data.Models.csproj' is modified after output file 'C:\Projects\ProjectMM\ProjectMM.Data.Models\bin\Debug\ProjectMM.Data.Models.pdb'.
All packages are already installed and there is nothing to restore.
1>------ Build started: Project: ProjectMM.Data.Models, Configuration: Debug Any CPU ------
2>Project 'ProjectMM.Data' is not up to date. Input file 'C:\Projects\ProjectMM\ProjectMM.Data\ProjectMM.Data.csproj' is modified after output file 'C:\Projects\ProjectMM\ProjectMM.Data\bin\Debug\ProjectMM.Data.pdb'.
2>------ Build started: Project: ProjectMM.Data, Configuration: Debug Any CPU ------
3>Project 'ProjectMM' is not up to date. Input file 'c:\projects\projectmm\projectmm\app_start\bundleconfig.cs' is modified after output file 'C:\Projects\ProjectMM\ProjectMM\bin\ProjectMM.pdb'.
3>------ Build started: Project: ProjectMM, Configuration: Debug Any CPU ------
========== Build: 0 succeeded, 3 failed, 0 up-to-date, 0 skipped ==========

1
La finestra dell'elenco degli errori viene visualizzata o no?
Karthik

Vai al menu Visualizza -> Seleziona Elenco errori e controlla se ci sono errori. Idealmente dovresti averlo nell'elenco degli errori. Tieni aperta la finestra Elenco errori e prova a costruire il progetto e guarda cosa succede ..
Karthik

4
Quindi, ecco cosa è appena successo: ho pubblicato questa domanda e supponendo che non avrei ricevuto una risposta immediatamente, ho chiuso il progetto. Mi hai chiesto di riaprirlo, di aprire l'elenco degli errori e di ricostruirlo. Ha funzionato perfettamente, nessun errore, tutto è riuscito!
Rob Greenlee

@ RobGreenlee: Vedi la mia risposta, scommetto che la "scheda Errore" era attiva quando hai riaperto la soluzione!
jpo38

Risposte:


101

Ho avuto lo stesso problema e la chiusura e la riapertura di Visual Studio lo risolve.

Avevo anche provato a pulire la soluzione e anche la pulizia non riuscita.

Potrebbero esserci altri scenari in cui questo non funziona, ma nel mio caso il riavvio lo ha risolto per me.


22
Se non aiuta a riavviare. Spesso incontro questo problema quando aggiungo un progetto alla mia soluzione, con un altro framework di destinazione che fa riferimento a progetti di framework diversi.
Bastiaan Linders

7
Nel mio caso, riavviare VS o pulire la soluzione non ha aiutato. Tuttavia, la rimozione di .suo nella cartella .vs ha risolto il problema
cellik

@cellik: nel mio caso non funziona. Quello che vale ... Sto usando l'edizione Enterprise.
KMC

4
Ho avuto lo stesso problema dopo aver cambiato l'ora del mio computer dal fuso orario CEST (GMT + 1) al fuso orario degli Stati Uniti (GMT-7), sembra che non potesse gestire il timestamp dell'ultima build era in futuro. Dopo aver riavviato VS tutto è OK.
martinh_kentico

2
L'eliminazione dei file .suo ha funzionato anche per me, il riavvio e la pulizia no.
Johann Marx

117

È possibile che non visualizzi tutti gli errori di compilazione.

Modificando l'elenco a discesa dopo l'icona "Messaggi" da "Build + Intellisense" a "Build Only", sarai in grado di vedere gli errori generati durante la compilazione che non vengono rilevati da Intellisense. Guarda lo screenshot qui sotto:

Costruire


3
Amico, sei il mio salvatore!
KMC

19
Perché gli errori "Build Only" non dovrebbero essere presenti in "Build + Intellisense"?
CodyF

Ciò ha aiutato a mostrare gli errori nell'elenco degli errori, ma le righe di codice con gli errori non hanno sottolineature rosse. Immagino che allora questo debba essere un problema di Intellisense.
Drew il

Per me va bene. Il mio era passato a Build e Intellisense, che nascondeva gli errori di build. Build Only funziona e visualizza gli errori di build.
HerrimanCoder

1
Mi hai salvato la giornata ... ottimo lavoro .. Grazie mille
MA9H

32

Ho visto istanze regolari di VS2015 che riportavano "build fallita" ma non mostravano errori nella finestra di errore. Provenendo da un antico sfondo della riga di comando, sono finalmente andato a guardare la finestra di output. La finestra di output mostrava il compilatore che riportava gli errori ma quegli errori non venivano catturati nella finestra di errore. Non ho mai visto questo problema con VS2013.

La consueta chiusura di VS e la sua riapertura non hanno chiarito questa condizione. (In VS2013 questo era un modo comune per calciare XAML intellisense nella parte posteriore e impedirgli di correggere un "errore" che era stato corretto.)

Finora questo è sempre stato correlato agli errori di compilazione in un file CS di pagina XAML. Non ricordo di averlo visto in un file CS non di pagina.

Finché non si capisce di andare a controllare la finestra di output, cose come la segnalazione di intellisense nella finestra di errore riferimenti non validi a oggetti in XAML, ma nessun errore del compilatore mostrato nella finestra di errore può creare MOLTA confusione poiché "appare" come gli errori sono l'intellisense segnala gli errori XAML. Ma in realtà non lo sono. Gli errori XAML sono solo sintomi di file CS che non vengono compilati ma che non vengono riportati nella finestra di errore.


20
Per quelli di voi che stanno ancora lottando con una finestra di errori invisibili, sembra che sia possibile visualizzare gli errori del compilatore nella finestra selezionando Build Only nel Filter ErrorList To nella finestra Error List (il menu a discesa non è etichettato ... Puoi capire qual è passando il mouse sopra di esso e osservando il suggerimento).
Robert Harvey

2
@RobertHarvey ... questa è la chiave ... ma PERCHÉ nel mondo Intellisense avrebbe la precedenza sulla build?
felickz

@RobertHarvey che era esattamente questo. Risulta, come qualcuno qui ha suggerito che stavo facendo riferimento a un progetto .net incompatibile, ma non potevo dire quale fosse il problema fino a quando non ho impostato l'output su "Build Only" nel riquadro degli errori. Non appena l'ho fatto, mi ha indirizzato direttamente al problema. Grazie per il suggerimento.
David Gunderson

Questa risposta è stata l'indizio per me. Cerca "errore CS" (senza virgolette) per possibili eccezioni di build di blocco.
granadaCoder

PS. Il mio errore era che avevo usato lo stesso nome di variabile nel mio metodo. "string x = string.Empty;" per esempio. Avevo un gestore di eccezioni che conteneva anche una dichiarazione "stringa x".
granadaCoder

11

L'eliminazione della .vscartella nascosta per ha funzionato per me per VS2015.

(Nota che qui è dove risiedono i file SUO ora)


9

Ciò potrebbe accadere quando si fa riferimento a un progetto di versione di .net framework diverso (v4.5.2 vs v4.5 nel mio caso). La correzione di questo risolverà il tuo problema.


Questo era esattamente il mio problema. Aggiunto un nuovo progetto alla soluzione che era v4.5.2 e l'ho fatto riferimento da un altro progetto che era v4.5. Passato il nuovo progetto alla v4.5 e ha funzionato bene.
Drew il

7

Quello che è successo da me è stato, cambiare il fuso orario sul computer a +5: 30 e poi cambiarlo indietro -5: 00 è ciò che ha confuso VS. Quando ho riavviato VS, ha funzionato di nuovo bene.


nessun indizio. Uso il controllo della versione, quindi potrebbe essere stato confuso con i tempi ???
MB

6

Controlla tutte le versioni di Project Framework e assicurati che siano tutte uguali, o almeno che il progetto A non faccia riferimento al progetto B quando la versione .NET Framework del progetto B è superiore.


6

Ho avuto questo problema con VS2015 Update 3 RC e Xamarin (progetto condiviso .Forms).
Il compilatore non si ferma, gli errori venivano visualizzati solo nella finestra di output.
Questo solo per i progetti Xamarin (con i progetti VB.NET tutto ha funzionato come previsto) ...
Per provare a trovare il motivo del problema, ho modificato l'output della build in VS:
- menu "Strumenti - Opzioni"
- dal pannello di sinistra : "Progetti e soluzioni: compila ed esegui":
- modifica "Verbosità dell'output di MSBuild" da "Minima" a "Diagnostica"

Dopo averlo fatto, il compilatore si è fermato e l'errore è stato mostrato ..
Dopodiché, ho reimpostato l'opzione da "Diagnostic" a "Minimal" (come era prima) e ... ha funzionato anche con "Minimal" (per essere sicuro, ho anche riavviato VS) ...

Quindi .. sembra (almeno nel mio caso) che solo cambiare (toccare) l'impostazione (MSBuild Output Verbosity ") abbia risolto il problema e che questo sia un bug in VS e / o nel software di integrazione Xamarin ...


1
Perché questa risposta non è più votata? Ti dà la soluzione perfetta per eseguire il debug di ciò che è sbagliato
John Demetriou

Controlla la mia risposta qui sotto. Pensavo anche che la tua soluzione fosse giusta ma mi sono reso conto che anche con il livello di output "Diagnostic", la mia "scheda Error" sarebbe rimasta vuota. Come altri, molto probabilmente hai mantenuto attiva la "scheda Errore" ed è per questo che ha iniziato a funzionare bene ...
jpo38

6

Non so se sono l'unico ad affrontare questo problema.

Nel mio caso, quando ho aperto Visual Studio, il fuso orario era GMT + 1: 00 e la compilazione ha avuto successo. Quindi ho cambiato il fuso orario in GMT + 5:30, quindi senza riavviare Visual Studio, ho provato a eseguire l'applicazione, ma la compilazione non è riuscita senza alcun errore o avviso.

Ho ripristinato il fuso orario in GMT + 1: 00 e la compilazione è riuscita senza errori.


Grazie mille - questo mi ha fatto impazzire per tutto il pomeriggio :-)
indra

2

Quello che ho fatto (dopo tutto quanto sopra, e ancora non funzionava) è stato esaminare tutte le cartelle bin e cancellarle tutte (cioè anche i progetti a cui si fa riferimento).

Questo ha funzionato per me, spero lo faccia anche per te.


2

Ho avuto questo problema e si è scoperto che avevo un usingpuntamento a uno spazio dei nomi vuoto. La rimozione di quella usingclausola ha risolto il problema


2

Controlla le avvertenze ..

Ho avuto la nuova libreria di classi con destinazione .Net Framework 4.5 mentre il progetto di riferimento era 4.0 che ha causato problemi di riferimento.

Dopo aver modificato la libreria di classi con .Net Framework 4.0 di destinazione, ha funzionato correttamente.


2

Niente delle risposte sopra mi ha aiutato. Dopo molti esperimenti ho finalmente scoperto che il problema è un riferimento di Microsoft.Net.Compilers v2.10.0 in uno dei progetti. VS 2015 utilizza MSBuild v14 che non supporta quella versione di Microsoft.Net.Compilers.


1

Per me questo problema era correlato a un'impostazione del set di regole CodeAnalysis personalizzata " IncludeAll ".

Sembra che il compilatore osservi questa impostazione:

  <IncludeAll Action="Error" />

Ma IntelliSense ha preso l'azione predefinita sull'ID regola che era "Avviso". Questo spiegherebbe il comportamento visto da @RobertHarvey in cui si filtra l'output per Build Only e viene visualizzato come ERRORE , ma se si filtra per Intellisene Only viene visualizzato come WARNING . Filtrare l'output tramite Build + Intellisense predefinito sembra non deterministico!

La mia soluzione è stata quella di richiamare esplicitamente la regola che volevo essere un avvertimento come avvertimento.

  <Rules AnalyzerId="Microsoft.CodeAnalysis.CSharp" RuleNamespace="Microsoft.CodeAnalysis.CSharp">
    <Rule Id="CS0618" Action="Warning" />
  </Rules>

Questo è potenzialmente un problema con Intellisense che non osserva l' opzione IncludeAll . Vedi https://github.com/dotnet/roslyn/issues/7400


1

Ciò può accadere anche durante la migrazione di un progetto a Visual Studio 2015 con un Framework precedente. Controlla i tuoi avvisi nel tuo Elenco errori. Potresti vedere qualcosa come project è attualmente .NET versione 2.0 e richiede .NET 3.5 o superiore. Se trovi un avviso simile, vai alle proprietà del tuo progetto e scegli come target .NET Framework richiesto.


1

Si prega di controllare gli avvisi. A volte la compilazione falliva anche a causa di qualche tipo di avvertimento.


1

Quando apro una soluzione, generala, posso vedere alcuni errori di build o avvisi riportati nella "scheda Output", mentre la "scheda Errore" non segnala alcun problema.

inserisci qui la descrizione dell'immagine

Puoi vedere che la configurazione della "scheda Errore" è corretta ("Solo build" e "Soluzione intera" selezionati).

Nota che, dopo un'indagine approfondita, ho riscontrato che ciò si verifica solo se la "scheda Errore" non è stata ancora mostrata all'avvio della build!

Se hai attivato la "scheda Errore" prima di eseguire la compilazione (o se era la scheda corrente quando hai avviato Visual), gli errori / avvisi appena trovati verranno visualizzati correttamente:

inserisci qui la descrizione dell'immagine

È come se la "scheda Errore" fosse inizializzata solo quando diventa visibile (il che può essere vero poiché richiede più tempo per essere visualizzata la prima volta che fai clic su di essa ...), e, se non lo era, non raccoglie build risultati ...

Finora, non avere una risposta migliore a questo problema di " attivare la scheda Errore prima di costruire ".

E scommetto che è per questo che "riavviare VS" a volte funziona. Vedrai che la "scheda Errore" è vuota, chiudi e riapri VS, quindi la "scheda Errore" viene visualizzata per impostazione predefinita poiché VS ha ripristinato la scheda attiva corrente dalla sessione precedente. Costruisci e ora la "scheda Errore" viene popolata ...! Sei solo stato fortunato.

Nota: segnalato un bug VS: https://connect.microsoft.com/VisualStudio/feedback/details/3132689


Questa soluzione ha funzionato per me. A me è successo una volta: non sono stati visualizzati avvisi. Ho aperto la finestra Elenco errori e ho ricostruito la soluzione. Questa volta sono stati visualizzati gli avvisi. Non riesco a riprodurre di nuovo lo stesso problema anche dopo aver riavviato il VS.
IAN

1

Per me la compilazione è fallita senza errori, ma dopo alcune leggere indagini ho scoperto che il riferimento a MSHTML non è stato trovato da VS.

inserisci qui la descrizione dell'immagine

Il comportamento è apparso dopo un aggiornamento a Windows 10. Per risolverlo, è necessario registrare l'assembly dalla GAC. Per sapere come farlo, vai a questa risposta DLL MSHTML su Windows 10 che è dove ho trovato la mia risposta.


0

Tratto da questa risposta

Compilazione non riuscita, non sono stati visualizzati errori nella finestra di output.

Per provare a trovare il motivo del problema, ho modificato l'output di compilazione in VS: - menu "Strumenti - Opzioni" - dal pannello di sinistra: "Progetti e soluzioni: compila ed esegui": - cambia "Verbosità dell'output di MSBuild" da " Minimo "a" Diagnostico "

Dopo averlo fatto, ho trovato il vero motivo che in realtà era un errore con i progetti di dipendenza. Il progetto su cui dipendevo era costruito per un framework diverso (più recente) dal mio. Creando così il problema. Gli errori sono stati emessi solo quando ho impostato la verbosità dell'output su Diagnostic


Non si tratta solo di capire il problema, si tratta di imparare a risolverlo. Questo è il motivo per cui ho incluso un altro processo di debug delle risposte, perché questo è ciò che mi ha aiutato a scoprire cosa non va. Non solo ipotesi casuali su quale potrebbe essere il problema
John Demetriou

0

Per me era una proprietà annessa canaglia. Il problema non era necessariamente che non vedessi un errore; l'errore era il seguente:

Il nodo figlio "2" è stato chiuso prematuramente. Chiudere. Le informazioni diagnostiche possono essere trovate nei file nella directory dei file temporanei denominata MSBuild _ *. Failure.txt.

Inizialmente, la build si bloccava e non mostrava alcun errore a meno che non si tenti di chiudere Visual Studio. Dopo il riavvio, si bloccherà per un lungo periodo durante la costruzione, quindi visualizzerà il messaggio sopra.

L'eliminazione della .vscartella nascosta , la ricostruzione / pulizia della soluzione e il riavvio di Visual Studio non hanno funzionato. La rimozione della proprietà allegata ha fatto; ergo, potrebbe essere un codice effettivo da qualche parte che non funziona correttamente.

Come ultima risorsa, rimuoverei tutte le modifiche recenti una per una fino a quando il problema non sarà risolto poiché nessuna delle soluzioni qui ha aiutato.

Aggiornare

Poiché sono abituato a sviluppare applicazioni WPF tradizionali, non mi rendevo conto che non è possibile avere spazi dei nomi XAML "concatenati" utilizzando .s con UWP. Stavo tentando di impostare una proprietà allegata utilizzando

My.Namespace:SomeClass.SomeProperty="SomeValue"

Considerando che, dovrebbe essere solo

MyNamespace:SomeClass.SomeProperty="SomeValue"

Non è così bello come piace a me, ma è l'unico modo per andare, a quanto pare.


0

Cosa ha funzionato per me:

La chiusura di tutti i documenti ha risolto il problema per me. (Stessa soluzione se intelliSense smette di funzionare)

(scheda clic destro - Chiudi tutti i documenti)


0

Prova questo

Escludendo "mstscax.dll"dalle dipendenze ha funzionato per me.


0

Problema di nicchia: mi sono imbattuto nello stesso problema proprio ora. Nessuna delle risposte di cui sopra sembrava aiutare.

Il problema era per un programma console, non è possibile contrassegnare il metodo Main () come asincrono **, che è quello che stavo facendo. Non sono sicuro, perché Visual Studio non è stato in grado di specificare il motivo per cui esattamente il progetto non è stato compilato (ho ricevuto 0 errori e 0 avvisi ogni volta). Sto usando Visual Studio 2015 Enterprise.

Correzione: la soluzione per questo è qui .


0

Dopo aver aggiornato un file dll, si è scoperto che il nuovo file era destinato a una versione superiore di .NET Framework. La soluzione era passare alle proprietà del progetto e modificare il framework di destinazione con la versione appropriata.


0

MSBuild.exe viene modificato nella directory (C: \ Programmi (x86) \ MSBuild \ 14.0 \ Bin)

quindi sostituisco semplicemente MSBuild.exe da un altro PC che ha vs2015.

Ora funziona bene.


0

Ho trovato la soluzione cambiando .NET Framework da 4.5.2 a 4.0.

Il problema è stato causato da un riferimento non compatibile con il framework attualmente selezionato.


0

Ho appena cancellato i filtri e per me ha funzionato. L'icona di cancellazione di tutti i filtri si trova vicino alla casella dei messaggi.


0

Inizia un nuovo progetto. Copia tutto il tuo codice fino allo spazio dei nomi seguente ConsoleApp38450983450.

Incolla nel nuovo progetto sotto lo spazio dei nomi ScrewedUpConsoleApp102343

Costruisci e corri alla perfezione


-1

Dovresti impostare la casella combinata sul lato destro sotto l'elenco degli errori, su "Intera soluzione" per vedere tutti gli errori. inserisci qui la descrizione dell'immagine


1
Questa domanda piuttosto vecchia ha già una risposta accettata, non sembra che la tua risposta molto breve e poco descrittiva qui aggiunga molto ad essa. Inoltre, per favore non creare link ad immagini su siti esterni ma aggiungi le immagini alla tua risposta!
Dux
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.