So finden Sie den Grund für einen fehlgeschlagenen Build ohne Fehler oder Warnung

144

Ich habe eine Webanwendung, die Verweise auf WCF-Dienste enthält.

Während der Erstellung mit Visual Studio 2010 schlägt die Erstellung ohne Fehler oder Warnung fehl. Das Erstellen der .csprojVerwendung MsBuildist jedoch erfolgreich.

Ich kann nicht herausfinden, was ich in Visual Studio versuchen soll, um das Problem zu beheben / zu diagnostizieren. Können Sie bitte helfen?

BEARBEITEN:

Ich finde heraus, dass der Build fehlgeschlagen ist.

  1. Aus dem in der Statusleiste angezeigten Text.
    Geben Sie hier die Bildbeschreibung ein

  2. Aus dem Ausgabefenster:

    ========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========
Abhijeet
quelle
5
Woher wissen Sie, dass Ihr Build fehlschlägt?
Sam, ich bin, sagt Reinstate Monica
5
Gibt es irgendetwas auf der Registerkarte "Ausgabe"?
Malice
15
Versuchen Sie, die Ausführlichkeit des Ausgabefensters in Visual Studio zu erhöhen. Es kann helfen, das Problem zu bestimmen. So erhöhen Sie die Ausführlichkeit: blogs.msdn.com/b/saraford/archive/2008/10/07/…
Maxim
6
Haben Sie versucht, VS2010 neu zu starten oder sogar Ihren PC neu zu starten?
Comecme
2
@NahuelI. Ich habe wieder ein ähnliches Problem in einem anderen Projekt bekommen, als ich nach Stackoverflow gesucht habe, habe ich meine eigene Frage zurückbekommen :-)
Abhijeet

Antworten:

119

Ich bin gerade in eine ähnliche Situation geraten. In meinem Fall schlug eine benutzerdefinierte Aktion (aus dem auf Nuget.org verfügbaren MSBuildVersioning-Paket - http://www.nuget.org/packages/MSBuildVersioning/ ), die im BeforeBuild-Ziel der csproj-Datei angezeigt wurde, fehl, ohne dass eine Fehlermeldung im normaler Ort.

Ich konnte dies feststellen, indem ich die Ausführlichkeit der Ausgabe des MSBuild-Projekt-Builds (auf der neuesten Registerkarte " Tools " von Visual Studio [Pfad: Tools> Optionen> Erstellen und Ausführen ]) wie unten gezeigt auf " Diagnose " stellte. Dies zeigte dann, dass die benutzerdefinierte Aktion (in meinem Fall HgVersionFile) fehlgeschlagen war.

Screenshot von Visual Studio mit der geänderten Einstellung.

Richard J Foster
quelle
2
Ausgezeichneter Fund Richard - Wirklich nützliche Informationen, wenn Sie beide Ausführlichkeitsstufen auf Diagnose setzen
Dai Bok
3
Für alle, die keine Ahnung haben wie ich: Um diese Methode zu verwenden, müssen Sie möglicherweise den Inhalt des Ausgabefensters durchsuchen. Meine Erstellungsfehler wurden durch #pragma warning disableAnweisungen ausgeblendet und waren nur sichtbar, wenn ich im Ausgabefenster nach "Fehler" suchte.
Sirdank
Nachdem ich meine Ausführlichkeit auf Diagnose gesetzt hatte, stellte ich fest, dass ich eine System.OutOfMemoryException erhielt. Ich habe 98% des verfügbaren Speichers meines Computers verwendet. Das ist eine großartige Antwort!
TxRegex
1
Dies löst das Problem auch in VisualStudio 2017. Vielen Dank.
H. Aydin
1
Für mich habe ich Queue New Build verwendet, um auf TFS aufzubauen, und das Dialogfeld Queue Build hat eine Ausführlichkeit auf der zweiten Registerkarte, die ich aufrufen und dann das Problem im Build-Protokoll sehen konnte.
AaronLS
135

Build + Intellisense hat die Fehlermeldungen verschluckt. Wenn Sie Nur Build auswählen, werden sie angezeigt.

Bildschirmfoto

Abu Abdullah
quelle
Ich bin gerade in die Situation gekommen, in der keiner dieser Fehler auftritt :(
Imad
1
Wow, das hat bei mir funktioniert, wie zum Teufel ist das in der neuen Version von VS 2019 so? Danke, Mann!
Carter
1
@AbuAbdullah Hat für mich gearbeitet. Gute Arbeit, um anderen zu helfen.
Nam
danke, hat meinen Tag gerettet
Bikram Limbu
59
  • Wenn die Lösung mehr als ein Projekt enthält, versuchen Sie, sie einzeln zu erstellen.
  • Versuchen Sie, Visual Studio neu zu starten.
  • Versuchen Sie, den Computer neu zu starten.
  • Versuchen Sie " Alle neu erstellen "
  • Versuchen Sie " Clean Solution ", entfernen Sie dann Ihre " vspscc " -Dateien und " vssscc " -Dateien und starten Sie Visual Studio neu und dann " Alle neu erstellen ".
Sasse
quelle
105
Und wenn es nicht hilft, sollte ich einfach einen neuen Job finden?
Alex Zhukovskiy
2
Nur ein Neustart von VS2013 hat mir geholfen. Ich habe an einer VM mit begrenzten Ressourcen gearbeitet, bin mir aber nicht sicher, ob das etwas damit zu tun hat.
Jmaurier
2
Sie können die Lösung nicht bereinigen, wenn Sie dieses Problem haben.
H. Aydin
1
Was mir geholfen hat, ist das Schließen aller Instanzen von VS (nicht genug, um die fehlerhafte zu schließen), dann den .vsOrdner zu löschen und VS erneut zu starten.
EliSherer
22

Der Neustart von VS (2013 Pro, Win 8.1) hat es für mich getan.

Ignas Vyšnia
quelle
VS 2015 Community Win 7 mit einem einzigen MVC-Projekt. Gleiche Auflösung.
Maplemale
2
VS 2017 Community Win 10. Ich denke, ich sollte versuchen, es aus- und wieder einzuschalten, bevor ich nach einer Lösung suche!
DreamTeK
12

Löschen Sie den .vs-Ordner und starten Sie VS neu. Das hat bei mir funktioniert

Geben Sie hier die Bildbeschreibung ein

Arun Prasad ES
quelle
9

Ich möchte die Antwort von Sasse erweitern .

Um das Problem mit Visual Studio 2015 Update 2 zu beheben, musste ich jedes Projekt einzeln erstellen und nach jedem Build das Ausgabefenster anzeigen.

Ein Projekt gab mir

"Der Typ- oder Namespace-Name 'SomeNamespace' ist im Namespace 'BeforeSomeNamespace' nicht vorhanden (fehlt Ihnen eine Assembly-Referenz?)".

Es gab keinen Fehler im Fehlerlistenfenster, aber die Baugruppe hatte ein gelbes Warnzeichen unter "Referenzen".

Ich habe dann gesehen, dass das referenzierende Projekt auf 4.5.1 und das referenzierte Projekt 4.6.1 abzielte. Durch Ändern von 4.6.1 in 4.5.1 konnte der gesamte Build erfolgreich ausgeführt werden.

user764754
quelle
1
Nun, es ist möglicherweise nicht erforderlich, ein Projekt gleichzeitig zu erstellen, aber eines ist sicher: Sehen Sie sich das Ausgabefenster (besser noch kopieren / in den Editor einfügen und Strg + F suchen) für ein Wort "fehlt" genau an. Es wird nicht in der Fehlerliste angezeigt, aber es bricht verdammt noch mal Ihre Lösung. -.-
Dovydas Navickas
5

Bei mir funktionierte nichts, also löschte ich die .suo-Datei, startete VS neu, bereinigte die projizierte Datei und dann funktionierte der Build.

Andy
quelle
5

Es scheint, dass es mehrere Antworten auf diese Frage gibt, daher füge ich meine aus persönlicher Erfahrung hinzu und hoffe, dass dies jemandem Zeit / Stress spart.

Stellen Sie sicher, dass alle Projekte in Ihrer Lösung auf dieselbe .NET-Version abzielen.

Ähnlich wie bei OP gab es 0 Fehler, aber der Build schlug weiterhin fehl. Es gab jedoch einen Warnungseintrag (der zwischen mehreren hundert nutzlosen XML-Warnungen vergraben war ...), der besagte, dass ein Projekt auf eine andere .NET-Version abzielte als ein Projekt, das darauf verwies. Das gesamte Problem bestand darin, dass ein Projekt in meiner Lösung auf .NET 4.5.2 abzielte, während der Rest auf 4.5.1 abzielte. Es sollte auch mit dieser Diskrepanz funktionieren (daher war es nur eine Warnung), aber leider hat es den Build gebrochen.

Der seltsame Teil war, dass es eine Weile gut gebaut wurde, aber plötzlich schlug der Build einmal fehl und verursachte dieses Problem. Ich bin mir nicht sicher, was ich getan habe, um mich über unterschiedliche .NET-Zielversionen zu beschweren, aber ich habe das Gefühl, dass es in Visual Studio nur einige Rätsel gibt, die niemals gelöst werden können.

Alan Thomas
quelle
1
Es stellte sich heraus, dass ich ein neues Projekt hinzugefügt hatte und es eine andere Version des .Net-Zielframeworks hatte. Ich habe das behoben und obwohl der Build immer noch fehlgeschlagen ist, konnte ich den Fehler sehen, der den Build beschädigte. Vielen Dank.
Fidschjit
4

Gehen Sie zum Ausgabefenster und suchen Sie im Ausgabefenster TADA nach 'error'

Mahdi Khalili
quelle
3

Zuerst "Clean the Solution", dann Rebuild Soln.

Wenn dies nicht funktioniert, schließen Sie die Lösung und starten Sie die Lösung neu.

Probieren Sie diese Dinge aus, die Hoffnung funktioniert definitiv.

Santosh K.
quelle
3

Eine andere Möglichkeit besteht darin, dass Visual Studio als Administrator ausgeführt werden muss. Dies hängt möglicherweise mit der Bereitstellung auf einem lokalen IIS-Server oder anderen Bereitstellungsanforderungen zusammen.

Bill Yang
quelle
3

Dies kann passieren, wenn eines der Projekte, auf die verwiesen wird, eine höhere Version des .NET-Frameworks als Ihr aktuelles Projekt ist.

mcmillab
quelle
3

Ich hatte das gleiche Problem und habe dieses Problem auf die Fehlerlistenoptionen "Build + Intellisense" zurückgeführt.

Wenn diese Option ausgewählt ist, werden in der Liste keine Fehler angezeigt. Wechseln Sie zu " Nur erstellen " und die Fehler werden wie erwartet angezeigt.

Es sieht aus wie ein Fehler in Visual Studio. Durch einen Neustart des Visual Studios wurde dieses Problem behoben .

Christlin Panneer
quelle
2

Ich hatte ein ähnliches Problem, nachdem ich meiner Lösung ein neues Projekt ("TestCleaner") hinzugefügt hatte: Build fehlgeschlagen, keine Fehler.

Ich habe die Ausführlichkeit der Ausgabe erhöht (siehe Anweisungen von Richard J Foster) und die Ausgabe nach "fehlgeschlagen" durchsucht. Ich stellte schnell fest, welches Projekt fehlschlug und warum: Projekt "TestRunner" war mit " Fehler CS0246: Der Typ- oder Namespace-Name 'TestCleaner' konnte nicht gefunden werden" fehlgeschlagen (obwohl im Code keine Probleme hervorgehoben wurden).

Beim Überprüfen der TestRunner-Referenzen wurde sichergestellt, dass der Verweis auf TestCleaner als ungelöst markiert war und der Pfad in den Referenzeigenschaften fehlte. Das Löschen und erneute Hinzufügen hat das Problem nicht behoben. Wieder keine Erklärung warum.

ungelöste Referenz

Endlich entdeckte ich die Ursache: "TestCleaner" verwendete ein anderes Zielframework als die anderen Projekte. Es war .Net 4.5.2; die anderen waren 4,5.

Ben Whitmore
quelle
2

Nur um die Fertigstellung zu vervollständigen und vielleicht jemandem zu helfen, der in Zukunft wieder auf denselben Fehler stößt, habe ich die U-Bahn-Schnittstelle von Mahapps verwendet und die XAML eines Fensters geändert, aber vergessen, die Teilklasse im CodeBehind zu ändern. In diesem Fall schlug der Build ohne Fehler oder Warnung fehl, und ich konnte dies herausfinden, indem ich die Ausführlichkeit der Ausgabe aus den Einstellungen erhöhte:

Fehlerbereich

Ausgabebereich

mcy
quelle
5
Wählen Sie im Fehlerfilter auch "Nur erstellen" und nicht "Erstellen + Intellisense".
Niico
2

Ich hatte das gleiche Problem. Das Fehlerlistenfenster enthält zwei Dropdown-Listen "Elemente enthalten, die enthalten sind in" und "Generierte Probleme anzeigen". Diese Namen sind sichtbar, nachdem Sie den Mauszeiger über die Dropdown-Liste bewegt haben. Die Dropdown-Liste "Show generierte Probleme" wurde auf "Build + IntelliSense" gesetzt und nach dem Wechsel zu "Nur erstellen" wurden die Fehler in der Liste angezeigt.

Jakubiszon
quelle
2

Für mich war das Target Frameworkdas Problem.

Mein Projekt Target Frameworkwar 4.5.2und das referenzierte Projekt Target Frameworkwar 4.6.1.

Nachdem ich mein Projekt auf aktualisiert hatte Target Framework, 4.6.1wurde das Problem behoben.

Ankush Jain
quelle
1

Ich hatte das gleiche Problem! Löschen Sie einfach den Ordner bin und starten Sie Ihren neu VS. Das ist alles. getestet in VS 2013.

John
quelle
Als ich versuchte, dies durch Löschen des Ordners bin und obj zu beheben, wurde das Problem behoben. Außerdem benötigte ich Administratorrechte, um den obj-Ordner zu löschen, damit etwas sehr Seltsames passiert war.
DAG
1

Was es für mich gelöst hat, war das Löschen des .vsOrdners aus dem Stammverzeichnis der Lösung und das Neustarten von Visual Studio.

Vielleicht ist es auch wichtig zu sagen, dass die Fehler, obwohl sie nicht im Bereich Fehlerliste angezeigt wurden, immer noch in der Ausgabe des Builds vorhanden waren.

Ronald Rey
quelle
1

Versuchen Sie, Ihr Projekt über die Powershell-Befehlszeile zu erstellen:

dotnet build

Dann können Sie alle Fehler in der Befehlszeilenausgabe sehen, selbst wenn Visual Studio Verstecken mit Build-Fehlermeldungen spielt.

user3810867
quelle
0

Dies geschah mir, nachdem ich einem asp.net-Projekt eine neue Seite hinzugefügt hatte.

Was ich getan habe, war, die Seite auszuschließen und sie wieder erfolgreich zu erstellen.

Dann habe ich die Seite mit dem gesamten auskommentierten Code wieder hinzugefügt. Erfolg.

Dann habe ich den Code Stück für Stück auskommentiert und dann hat alles funktioniert.

toddmo
quelle
0

Ich hatte das gleiche Problem, nachdem ich einige Formulare gelöscht hatte. Die Fehler traten auf, als ich in den Code ging und eine "Show Definition" für eines der Steuerelemente durchführte, die ich entfernt hatte.

Ich habe auch einen höheren Rahmen für eines meiner Projekte angestrebt, also könnte dies auch das Problem gewesen sein.

Dennis Kuypers
quelle
0

Ich habe alles versucht, aber in meinem Fall hat nichts funktioniert. Dann habe ich diese genannten Einstellungen geändert, wodurch das Problem für mich recht gut gelöst wurde. Versuchen Sie, wenn es letzteren Zuschauern helfen könnte. Diese Einstellungen können in Ihrer Situation variieren. Stellen Sie jedoch sicher, dass Sie alle enthaltenen DLLs mit denselben Konfigurationseinstellungen erstellen, die Sie ursprünglich beibehalten haben (siehe Abbildung).Konfigurationseinstellungen

Bild hier.

Prost!

Iqra.
quelle
0

Wenn das Nuget-Paket 'Microsoft.Net.Compilers' installiert ist, stellen Sie sicher, dass es für die Version Ihres Visual Studio (Build Tools-Version) geeignet ist.

Die Versionen 1.x bedeuten C # 6.0 (Visual Studio 2015 und Updates). Zum Beispiel 1.3.2

Aktualisieren Sie also nicht auf Version über 1.x, wenn Sie VS2015 verwenden

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

Roman M.
quelle
0

Ich hatte ein wirklich altes Projekt auf einer älteren Maschine. Das Projekt wurde korrekt erstellt, als ich die Maschine ausschaltete. Heute erhalte ich einen Build-Fehler, aber keine Fehlermeldung. Nachdem ich einige Vorschläge von oben ausprobiert hatte, kein Glück.

In Visual Studio 2015 habe ich Detailed MSBuild unter TOOLS> Optionen> Projekte und Lösungen> Erstellen und Ausführen aktiviert

Es gab mir einige Details über Build, aber keine Fehler. Danach habe ich versucht, Erweiterungen und Updates (Extras> Erweiterung und Updates) zu überprüfen und festgestellt, dass einige von ihnen aktualisiert werden müssen.

Das Nuget-Paket war schuld, nachdem das Update von Nuget erfolgreich war.

Geben Sie hier die Bildbeschreibung ein

Spicet
quelle
0

Möglicherweise liegt ein Unterschied zwischen der Reportviewer-Version in Ihrem Projekt und VS vor

Roohi Ali
quelle
3
Dies ist ein Kommentar
Ivan Kaloyanov
0

Da nicht alles funktioniert hat, wurde festgestellt, dass beim Öffnen des Projekts als Lösung (.sln) keine Fehler angezeigt werden, während der Fehler beim Öffnen des Projekts als Projekt angezeigt wird.

Mosta
quelle
0

Ich hatte das gleiche Problem, ich habe Extras -> Optionen -> Projekte und Lösungen / Erstellen und Ausführen -> Ausführlichkeit der Protokolldatei für das Erstellen von MSBuild-Projekten [ Diagnose ] geändert . Diese Option zeigt Fehler im Protokoll an, aus bestimmten Gründen zeigt mein VS nicht die Registerkarte Fehler in Fehlern an!

Geben Sie hier die Bildbeschreibung ein

Führen Sie die obigen Einstellungen und die Ausgabekopie im Editor / Texteditor aus und suchen Sie nach Fehlern. Es werden Ihnen alle Fehler angezeigt.

Jenish Zinzuvadiya
quelle
0

Das Neustarten von Visual Studio hat bei mir funktioniert. Versuchen Sie auch, Visual Studio normal neu zu starten (nicht als Administrator ausführen). Versuchen Sie, das System neu zu starten, und wiederholen Sie den obigen Schritt.

Juned Khan Momin
quelle
0

Eine andere Art, dieses Symptom zu reproduzieren:

Ich habe ein neues Projekt zu einer vorhandenen Lösung hinzugefügt und die Build-Ausgabe hat Fehler wie "Der Typ- oder Namespace-Name X wurde nicht gefunden ..." gemeldet, aber es wurden keine Fehler in der Fehlerliste angezeigt.

Die Klassen, auf die ich mich bezog, befanden sich in anderen Projekten (auf die verwiesen wurde) in derselben Lösung.

Es stellte sich heraus, dass ich versehentlich eine frühere Version von .net im neuen Projekt ausgewählt hatte. Nachdem ich auf die gleiche Version wie die anderen Projekte umgestellt hatte, wurde alles fehlerfrei erstellt.

Devosaurier
quelle