Come trovare il motivo della build fallita senza errori o avvisi


145

Ho una WebApplication che contiene riferimenti ai servizi WCF.

Durante la compilazione utilizzando Visual Studio 2010, Build ha esito negativo senza errori o avvisi. Tuttavia, la creazione .csprojdell'utilizzo ha MsBuildesito positivo.

Non riesco a capire cosa devo provare in Visual Studio per risolvere / diagnosticare il problema. Potete per favore aiutare?

MODIFICARE:

Scopro che la build non ha funzionato,

  1. Dal testo visualizzato nella barra di stato.
    inserisci qui la descrizione dell'immagine

  2. Dalla finestra di output:

    ========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========

5
come fai a sapere che la tua build sta fallendo?
Sam, sono io, dice Reinstate Monica il

5
C'è qualcosa nella scheda di output?
Malice,

15
Prova ad aumentare la verbosità della finestra di output in Visual Studio. Può aiutare a determinare il problema. Come aumentare il livello di verbosità: blogs.msdn.com/b/saraford/archive/2008/10/07/…
Maxim Kornilov,

6
Hai provato a riavviare VS2010 o addirittura a riavviare il PC?
comecme

2
@NahuelI. Ho avuto un problema simile ancora una volta in un altro progetto, quando ho cercato StackOverflow ho ricevuto la mia domanda :-)
Abhijeet

Risposte:


120

Mi sono appena imbattuto in una situazione simile. Nel mio caso, un'azione personalizzata (dal pacchetto MSBuildVersioning disponibile su Nuget.org - http://www.nuget.org/packages/MSBuildVersioning/ ) che è apparsa nella destinazione BeforeBuild del file csproj non è riuscita senza generare alcun messaggio di errore nel posto normale.

Sono stato in grado di determinare ciò impostando il "livello di dettaglio dell'output di compilazione del progetto MSBuild" (nell'ultima scheda Strumenti di Visual Studio [Percorso: Strumenti> Opzioni> Crea ed esegui ]) su " Diagnostica " come mostrato di seguito. Ciò ha quindi dimostrato che l'azione personalizzata (nel mio caso HgVersionFile) è stata ciò che è fallito.

Schermata da Visual Studio che mostra l'impostazione modificata.


2
Eccellente ricerca Richard - Informazioni davvero utili quando si impostano entrambi i livelli di verbosità su diagnostici
Dai Bok

3
Per chiunque sia all'oscuro di me come me: per usare questo metodo potresti dover cercare il contenuto della finestra di output. I miei errori di compilazione venivano nascosti da #pragma warning disableistruzioni ed erano visibili solo quando cercavo "errore" nella finestra di output.
sirdank

Dopo aver impostato la mia verbosità sulla diagnostica, ho scoperto che stavo ottenendo un System.OutOfMemoryException. Stavo usando il 98% della memoria disponibile del mio computer. Questa è un'ottima risposta!
TxRegex,

1
Questo risolve il problema anche su VisualStudio 2017. Molte grazie.
H. Aydin,

1
Per me stavo usando Queue New Build per compilare su TFS e la finestra di dialogo Build Queue ha una verbosità nella seconda scheda che ho potuto alzare e quindi vedere il problema nel registro di build.
AaronLS

136

Build + Intellisense ha ingoiato i messaggi di errore. Selezionando Build Only sono stati visualizzati.

Immagine dello schermo


Sono appena entrato nella situazione in cui nessuno di questi mostra errori :(
Imad

1
Wow, questo ha funzionato per me come diamine è una cosa nella nuova versione di VS 2019. Grazie uomo!
Carter,

1
@AbuAbdullah Ha funzionato per me. Buon lavoro nell'aiutare gli altri.
nam

grazie, mi ha salvato la giornata
Bikram Limbu il

59
  • Se la soluzione contiene più di un progetto, prova a crearli uno alla volta.
  • Prova a riavviare Visual Studio.
  • Prova a riavviare il computer.
  • Prova " Ricostruisci tutto "
  • Prova " Soluzione pulita ", quindi rimuovi i file " vspscc " e " vssscc ", quindi riavvia Visual Studio e quindi " Ricostruisci tutto ".

105
E quando non aiuta dovrei solo trovare un nuovo lavoro?
Alex Zhukovskiy,

2
Il semplice riavvio di VS2013 mi ha aiutato. Stavo lavorando su una VM con risorse limitate ma non sono sicuro che ciò avesse a che fare con esso.
Jmaurier,

2
Non è possibile pulire la soluzione se si riscontra questo problema.
H. Aydin,

1
Ciò che mi ha aiutato è la chiusura di tutte le istanze di VS (non abbastanza per chiudere quella difettosa), quindi eliminare la .vscartella e riavviare VS.
EliSherer,

22

Il riavvio di VS (2013 Pro, Win 8.1) lo ha fatto per me.


VS 2015 Community Win 7 con un singolo progetto MVC. Stessa risoluzione
Maplemale,

2
VS 2017 Community Win 10. Immagino che dovrei provare a spegnerlo e riaccenderlo prima di cercare una soluzione!
DreamTeK,


9

Voglio espandere la risposta di Sasse .

Per risolvere il problema con Visual Studio 2015 Update 2 ho dovuto compilare ogni progetto uno alla volta e guardare la finestra di output dopo ogni build.

Un progetto mi ha dato

"Il nome del tipo o dello spazio dei nomi 'SomeNamespace' non esiste nello spazio dei nomi 'BeforeSomeNamespace' (manca un riferimento all'assembly?)".

Non si sono verificati errori nella finestra Elenco errori ma nell'assieme era presente un segnale di avvertimento giallo in "Riferimenti".

Ho quindi visto che il progetto di riferimento mirava 4.5.1 e il progetto di riferimento 4.6.1. La modifica da 4.6.1 a 4.5.1 ha permesso alla build complessiva di avere successo.


1
Bene, costruire un progetto alla volta potrebbe non essere necessario, ma una cosa è certa: guarda attentamente la finestra di output (meglio ancora copiarlo / incollarlo nel blocco note e usare Ctrl + F find) per una parola "mancante". Non viene visualizzato nell'elenco degli errori, ma sicuramente rompe la tua soluzione. -.-
Dovydas Navickas

5

Non funzionava nulla per me, quindi ho eliminato il file .suo, riavviato VS, ripulito il progetto e quindi la build avrebbe funzionato.


5

Sembra che ci siano più risposte a questa domanda, quindi aggiungerò la mia per esperienza personale sperando che salverà qualcuno tempo / stress.

Assicurarsi che tutti i progetti nella soluzione siano indirizzati alla stessa versione .NET.

Simile a OP, c'erano 0 errori ma la build continuava a fallire. Tuttavia, c'era una voce di avviso (sepolta tra diverse centinaia di inutili avvisi XML ...) che diceva che un progetto stava prendendo di mira una versione .NET diversa rispetto a un progetto a cui faceva riferimento. L'intero problema era che un progetto all'interno della mia soluzione era rivolto a .NET 4.5.2, mentre il resto riguardava 4.5.1. si dovrebbe funzionare anche con questa discrepanza (da qui il motivo per cui era solo un avvertimento) ma purtroppo, si è rotto la build.

La parte strana è che ha costruito / funzionato bene per un po ', ma all'improvviso la build ha iniziato a fallire una volta causando questo problema. Non sono sicuro di cosa ho fatto per iniziare a lamentarmi delle diverse versioni di destinazione .NET, ma sento che ci sono solo alcuni misteri in Visual Studio che non verranno mai risolti.


1
Ho scoperto che avevo aggiunto un nuovo progetto e che aveva una diversa versione del framework di destinazione .Net - l'ho risolto e, sebbene la build fosse ancora fallita, sono stato in grado di vedere l'errore che stava interrompendo la build. Grazie.
Fijjit,

4

Vai alla finestra di output, cerca "errore" nella finestra di output, TADA


3

In primo luogo "Clean the Solution", quindi Rebuild soln.

Se non funziona, chiudere la soluzione e riavviare la soluzione.

Prova queste cose, spero che funzioni sicuramente.


3

Un'altra possibilità è che Visual Studio debba essere eseguito come amministratore, questo potrebbe essere correlato alla distribuzione sul server IIS locale o ad altre esigenze di distribuzione.


3

questo può accadere quando uno dei progetti a cui si fa riferimento è una versione superiore del framework .NET rispetto al progetto corrente.


3

Ho avuto lo stesso problema e ho rintracciato questo problema fino alle opzioni dell'elenco errori "Build + Intellisense".

Se questa opzione è selezionata, nell'elenco non vengono visualizzati errori. Passa a " Solo build " e gli errori vengono visualizzati come previsto.

Sembra un bug in Visual Studio. Il riavvio di Visual Studio ha risolto questo problema .


2

Ho avuto un problema simile dopo aver aggiunto un nuovo progetto (chiamato "TestCleaner") alla mia soluzione: build fallita, nessun errore.

Ho aumentato la verbosità dell'output (vedere le istruzioni di Richard J Foster) e ho cercato l'output per "non riuscito". Ho scoperto rapidamente quale progetto stava fallendo e perché: il progetto "TestRunner" non era riuscito con " errore CS0246: impossibile trovare il nome del tipo o dello spazio dei nomi" TestCleaner "" (anche se nel codice non sono stati evidenziati problemi).

Controllando i riferimenti di TestRunner, sicuramente il riferimento a TestCleaner è stato contrassegnato come non risolto e il percorso mancava dalle proprietà di riferimento. L'eliminazione e la nuova aggiunta non hanno risolto il problema. Ancora una volta, nessuna spiegazione del perché.

riferimento non risolto

Alla fine ho scoperto la causa: "TestCleaner" utilizzava un framework di destinazione diverso rispetto agli altri progetti. Era .Net 4.5.2; gli altri erano 4.5.


2

Solo per motivi di completamento e forse per aiutare qualcuno a riscontrare lo stesso errore in futuro, stavo usando l'interfaccia della metropolitana di Mahapps e ho cambiato l'XAML di una finestra, ma ho dimenticato di cambiare la classe parziale nel code-behind. In tal caso, la build non è riuscita senza errori o avvisi e sono stato in grado di scoprirlo aumentando la verbosità dell'output dalle impostazioni:

Riquadro errori

riquadro di output


5
seleziona anche 'build only' e non 'build + intellisense' nel filtro errori.
Niico,

2

Ho avuto lo stesso problema. La finestra dell'elenco errori contiene 2 menu a discesa "Mostra elementi contenuti in" e "Mostra problemi generati". Questi nomi sono visibili dopo essere passati sopra il menu a discesa. Il menu a discesa "Mostra problemi generati" è stato impostato su "Build + IntelliSense" e dopo essere cambiato in "Build Only" gli errori sono comparsi nell'elenco.


2

Per me, Target Frameworkil problema era questo.

Il mio progetto Target Frameworkera 4.5.2e il progetto referenziato Target Frameworkera 4.6.1.

Una volta che ho aggiornato il mio progetto Target Frameworkper 4.6.1, il problema è stato riparato.


1

Ho affrontato lo stesso problema! Basta eliminare la cartella bin e riavviare il tuo VS. È tutto. testato in VS 2013.


Quando ho tentato di risolvere questo problema eliminando bin e obj folder, è stato risolto. Inoltre ho richiesto i diritti di amministratore per eliminare la cartella obj, quindi è successo qualcosa di molto strano.
DAG,

1

Ciò che ha risolto per me è stato l'eliminazione della .vscartella dalla radice della soluzione e il riavvio di Visual Studio.

Potrebbe anche essere importante dire che, sebbene gli errori non fossero visualizzati nel riquadro Elenco errori, erano ancora presenti nell'output dalla build.


1

Prova a costruire il tuo progetto dalla riga di comando di Powershell:

dotnet build

Quindi puoi vedere eventuali errori nell'output della riga di comando anche se Visual Studio sta giocando a nascondino con i messaggi di errore build.


0

Questo mi è successo dopo aver aggiunto una nuova pagina a un progetto asp.net.

Quello che ho fatto è stato escludere la pagina, farla ricostruire con successo.

Quindi ho aggiunto di nuovo la pagina con tutto il codice commentato. Successo.

Poi ho decommentato il codice poco a poco e poi ha funzionato tutto.


0

Ho avuto lo stesso problema dopo aver eliminato un paio di moduli. Gli errori sono comparsi una volta che sono entrato nel codice e ho fatto una "Mostra definizione" per uno dei controlli che ho rimosso.

Stavo anche prendendo di mira un quadro superiore di uno dei miei progetti, quindi potrebbe essere stato anche questo il problema.


0

Ho provato tutto ma niente ha funzionato nel mio caso, quindi ho modificato queste impostazioni menzionate che hanno risolto il problema abbastanza bene per me. Prova se potesse di qualche aiuto questi ultimi spettatori. Queste impostazioni possono variare in base alla situazione, ma assicurati di creare tutte le DLL incluse con le stesse impostazioni di configurazione che hai mantenuto inizialmente (menzionate nell'immagine.).Impostazioni di configurazione

Immagine qui.

Saluti!


0

Se è installato il pacchetto nuget "Microsoft.Net.Compilers", assicurarsi che sia adatto alla versione di Visual Studio (versione di Build Tools).

Le versioni 1.x significano C # 6.0 (Visual Studio 2015 e aggiornamenti). Ad esempio, 1.3.2

Quindi non aggiornare alla versione precedente alla 1.x se si utilizza VS2015

https://stackoverflow.com/a/44397905/3862615


0

Avevo un progetto davvero vecchio su una macchina più vecchia. Il progetto si stava sviluppando correttamente quando ho spento la macchina. Oggi ricevo un errore di build ma nessun messaggio di errore. Dopo aver provato alcuni suggerimenti dall'alto, nessuna fortuna.

In Visual Studio 2015 ho attivato MSBuild dettagliato in STRUMENTI> Opzioni> Progetti e soluzioni> Crea ed esegui

Mi ha dato alcuni dettagli sulla build, ma senza errori. Dopo quello ho provato a controllare le estensioni e gli aggiornamenti (Strumenti> Estensione e aggiornamenti) e ho trovato che alcuni di essi avevano bisogno di aggiornamento.

Il pacchetto Nuget è stato il colpevole, dopo aver aggiornato Nuget - build ha esito positivo.

inserisci qui la descrizione dell'immagine



0

Poiché tutto non ha funzionato, è stato riscontrato che gli errori non vengono visualizzati quando si apre il progetto come soluzione (.sln), mentre l'errore viene visualizzato quando si apre il progetto come progetto.


0

Ho avuto lo stesso problema, ho cambiato Strumenti -> Opzioni -> Progetti e soluzioni / Crea ed esegui -> verbosità del file di registro di build del progetto MSBuild [ Diagnostica ]. Questa opzione mostra l'errore nel registro, per alcuni motivi il mio VS non mostra l'errore nella scheda Errori!

inserisci qui la descrizione dell'immagine

Esegui le impostazioni precedenti e copia l'output in Blocco note / Texteditor e cerca l'errore. Ti mostrerà tutti gli errori.


0

Il riavvio di Visual Studio ha funzionato per me. Prova anche a riavviare Visual Studio normalmente (non eseguito come amministratore). Prova a riavviare il sistema e ripeti il ​​passaggio precedente.


0

Un modo diverso di riprodurre questo sintomo:

Ho aggiunto un nuovo progetto a una soluzione esistente e l'output di build ha riportato errori come "il tipo o il nome dello spazio dei nomi X non è stato trovato ..." ma nessun errore è stato presentato nell'elenco degli errori.

Le classi a cui mi riferivo erano in altri progetti (a cui si faceva riferimento) nella stessa soluzione.

Si è scoperto che per errore avevo selezionato una versione precedente di .net nel nuovo progetto. Una volta passata alla stessa versione degli altri progetti, tutto è stato creato senza errori.

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.