Visual Studio 2015-Projekterstellungen fehlgeschlagen, aber keine Fehler

110

Meine Projekt-Builds schlagen alle fehl, aber mir werden keine Fehler angezeigt. Ich habe versucht zu reinigen und wieder aufzubauen, das hat nicht funktioniert.

Ich habe die Ausführlichkeit der MSBuild-Ausgabe in "Diagnose" geändert, in der Hoffnung, dass sie mir hilft, das Problem zu identifizieren, und jetzt stecke ich fest. So sieht die Ausgabe aus:

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 ==========
Rob Greenlee
quelle
1
Wird Ihr Fehlerlistenfenster angezeigt oder nicht?
Karthik
Gehen Sie zum Menü Ansicht -> Wählen Sie Fehlerliste und überprüfen Sie, ob Sie Fehler haben. Idealerweise sollten Sie es in der Fehlerliste erhalten. Lassen Sie Ihr Fehlerlistenfenster geöffnet und versuchen Sie, das Projekt zu
erstellen
4
Folgendes ist gerade passiert: Ich habe diese Frage gestellt und unter der Annahme, dass ich nicht sofort eine Antwort erhalten würde, das Projekt geschlossen. Sie haben mich aufgefordert, es erneut zu öffnen, die Fehlerliste zu öffnen und neu zu erstellen. Es hat perfekt funktioniert, keine Fehler, alles ist gelungen!
Rob Greenlee
@RobGreenlee: Siehe meine Antwort, ich wette, die Registerkarte "Fehler" war aktiv, als Sie die Lösung erneut geöffnet haben!
jpo38

Antworten:

100

Ich hatte das gleiche Problem und das Schließen und erneute Öffnen von Visual Studio räumt es auf.

Ich hatte auch versucht, die Lösung zu reinigen, und die Reinigung schlug ebenfalls fehl.

Es kann andere Szenarien geben, in denen dies nicht ausreicht, aber in meinem Fall hat ein Neustart dies für mich behoben.

Carson Evans
quelle
22
Wenn es nicht hilft, neu zu starten. Dieses Problem tritt häufig auf, wenn ich meiner Lösung ein Projekt hinzufüge, wobei ein anderes Target-Framework auf andere Framework-Projekte verweist.
Bastiaan Linders
7
In meinem Fall hat es nicht geholfen, VS neu zu starten oder die Lösung zu reinigen. Das Entfernen der .suo unter dem .vs-Ordner löste jedoch das Problem
cellik
@cellik: In meinem Fall funktioniert es nicht. Was ist es wert? Ich verwende die Enterprise Edition.
KMC
4
Ich hatte das gleiche Problem, nachdem ich meine Computerzeit von der MESZ-Zeitzone (GMT + 1) in die US-Zeitzone (GMT-7) geändert hatte. Es scheint, dass es nicht damit umgehen konnte, dass der Zeitstempel des letzten Builds in Zukunft lag. Nach dem Neustart von VS ist alles in Ordnung.
martinh_kentico
2
Das Löschen der .suo-Dateien hat auch für mich den Trick getan, das Neustarten und Bereinigen nicht.
Johann Marx
117

Möglicherweise werden nicht alle Buildfehler angezeigt.

Wenn Sie die Dropdown-Liste nach dem Symbol "Nachrichten" von "Build + Intellisense" in "Nur Build" ändern, werden während des Builds ausgelöste Fehler angezeigt, die von Intellisense nicht erkannt werden. Siehe den Screenshot unten:

Bauen

S. Mohamed Mahdi Ahmadian Zadeh
quelle
3
Alter, du bist mein Retter!
KMC
19
Warum sollten die "Nur Build" -Fehler in "Build + Intellisense" nicht vorhanden sein?
CodyF
Dies half beim Anzeigen der Fehler in der Fehlerliste, aber die Codezeilen mit den Fehlern haben keine roten Unterstreichungen. Ich vermute, dass dies dann ein Intellisense-Problem sein muss.
Drew
Funktioniert bei mir. Meins war auf Build und Intellisense umgestellt worden, was Buildfehler versteckte. Build Only funktioniert und zeigt Buildfehler an.
HerrimanCoder
1
Sie, Sir, haben mir den Tag gerettet.
Großartige
32

Ich habe regelmäßig Fälle von VS2015 gesehen, in denen "Build fehlgeschlagen" gemeldet wurde, aber keine Fehler im Fehlerfenster angezeigt wurden. Ich kam aus einem alten Kommandozeilenhintergrund und schaute schließlich auf das Ausgabefenster. Das Ausgabefenster zeigte den Compiler an, der Fehler meldete, aber diese Fehler wurden nicht im Fehlerfenster erfasst. Ich habe dieses Problem unter VS2013 nie gesehen.

Das übliche Schließen und Wiedereröffnen von VS hat diesen Zustand nicht behoben. (In VS2013 war dies eine übliche Methode, um XAML Intellisense in den Hintergrund zu treten und die Fixierung auf einen "Fehler" zu beenden, der behoben wurde.)

Bisher war dies immer auf Kompilierungsfehler in einer XAML-Seiten-CS-Datei zurückzuführen. Ich kann mich nicht erinnern, es in einer nicht seitenbezogenen CS-Datei gesehen zu haben.

Bis man herausfindet, wie man das Ausgabefenster überprüft, können Dinge wie Intellisense-Meldungen im Fehlerfenster ungültige Verweise auf Objekte in der XAML enthalten, aber keine Compilerfehler, die im Fehlerfenster angezeigt werden, können SEHR Verwirrung stiften, da sie so "erscheinen", wie die Fehler sind Der Intellisense meldet XAML-Fehler. Aber das sind sie eigentlich nicht. Die XAML-Fehler sind nur Symptome dafür, dass CS-Dateien nicht kompiliert werden können, ihre Fehler jedoch nicht im Fehlerfenster gemeldet werden.

Keith
quelle
20
Für diejenigen von euch noch mit einem unsichtbaren Fehler Fenstern zu kämpfen, es scheint , dass Sie den Compiler - Fehler in dem Fenster , indem Sie zu zeigen , bis bekommen Körperbau Nur im Filter Errorlist Um Dropdown im Fenster Fehlerliste (die Drop - Down - markiert ist nicht ... Sie können herausfinden, um welches es sich handelt, indem Sie mit der Maus darüber fahren und den Tooltip beachten.
Robert Harvey
2
@RobertHarvey ... das ist der Schlüssel ... aber WARUM in aller Welt würde Intellisense den Build überschreiben?
Felickz
@ RobertHarvey das war genau das. Es stellte sich heraus, dass jemand hier vorschlug, auf ein inkompatibles .net-Projekt zu verweisen, aber ich konnte das Problem nicht erkennen, bis ich die Ausgabe im Fehlerbereich auf "Nur erstellen" umstellte. Sobald ich das tat, wies es mich direkt auf das Problem hin. Danke für den Tipp.
David Gunderson
Diese Antwort war der Schlüssel für mich. Suchen Sie nach "Fehler CS" (keine Anführungszeichen) für mögliche blockierende Build-Ausnahmen.
GranadaCoder
PS. Mein Fehler war, dass ich in meiner Methode denselben Variablennamen verwendet hatte. "string x = string.Empty;" beispielsweise. Ich hatte einen Ausnahmebehandler, der auch eine "string x" -Deklaration enthielt.
GranadaCoder
11

Das Löschen des versteckten .vsOrdners für hat für mich für VS2015 funktioniert.

(Beachten Sie, dass hier jetzt die SUO-Dateien gespeichert sind.)

Mike Asdf
quelle
9

Dies kann passieren, wenn Sie auf ein anderes .net Framework-Versionsprojekt verweisen (in meinem Fall v4.5.2 vs v4.5). Wenn Sie dies korrigieren, wird Ihr Problem behoben.

Claudiu Constantin
quelle
Das war genau mein Problem. Der Lösung, die v4.5.2 war, wurde ein neues Projekt hinzugefügt, und ich habe auf ein anderes Projekt verwiesen, das v4.5 war. Das neue Projekt wurde auf v4.5 umgestellt und es hat gut funktioniert.
Drew
7

Was von mir passiert ist, war, die Zeitzone auf dem Computer auf +5: 30 zu ändern und sie dann wieder auf -5: 00 zu ändern, was VS verwirrt hat. Als ich VS neu startete, funktionierte es wieder einwandfrei.

MB
quelle
keine Ahnung. Ich benutze die Versionskontrolle, also könnte es sein, dass das mit der Zeit verwechselt wurde ???
MB
6

Überprüfen Sie alle Ihre Project Framework-Versionen und stellen Sie sicher, dass sie alle gleich sind. Zumindest verweist Projekt A nicht auf Projekt B, wenn die .NET Framework-Version von Projekt B höher ist.

Daniel Minnaar
quelle
6

Ich hatte dieses Problem mit VS2015 Update 3 RC und Xamarin (.Forms Shared Project).
Der Compiler stoppt nicht, Fehler wurden nur im Ausgabefenster angezeigt.
Dies gilt nur für Xamarin-Projekte (bei VB.NET-Projekten hat alles wie erwartet funktioniert) ...
Um den Grund für das Problem zu finden, habe ich die Build-Ausgabe in VS geändert:
- Menü "Extras - Optionen"
- im linken Bereich : "Projekte und Lösungen: Erstellen und Ausführen":
- Ändern Sie "MSBuild Output Verbosity" von "Minimal" in "Diagnostic".

Danach wurde der Compiler gestoppt und der Fehler wurde angezeigt.
Danach habe ich die Option von "Diagnose" auf "Minimal" zurückgesetzt (wie zuvor) und ... es hat auch mit "Minimal" funktioniert. (Natürlich habe ich auch VS neu gestartet) ...

Es scheint also (zumindest in meinem Fall), dass nur das Ändern (Berühren) der Einstellung (MSBuild Output Verbosity ") das Problem gelöst hat und dass dies ein Fehler in VS und / oder der Xamarin-Integrationssoftware ist ...

FredyWenger
quelle
1
Warum ist diese Antwort nicht höher bewertet? Es gibt Ihnen die perfekte Lösung, um zu debuggen, was falsch ist
John Demetriou
Überprüfen Sie meine Antwort unten. Ich dachte auch, dass Ihre Lösung richtig war, aber ich erkannte, dass meine "Registerkarte" Fehler "auch mit dem Ausgangspegel" Diagnose "leer bleiben würde. Wie andere auch, haben Sie höchstwahrscheinlich die Registerkarte "Fehler" aktiv gehalten und deshalb hat es gut funktioniert ...
jpo38
6

Ich weiß nicht, ob ich der einzige bin, der mit diesem Problem konfrontiert ist.

In meinem Fall war die Zeitzone beim Öffnen von Visual Studio in GMT + 1: 00 und der Build war erfolgreich. Dann habe ich die Zeitzone auf GMT + 5: 30 geändert und dann ohne Neustart von Visual Studio versucht, die Anwendung auszuführen, aber der Build ist ohne Fehler oder Warnung fehlgeschlagen.

Ich habe die Zeitzone auf GMT + 1: 00 zurückgesetzt und der Build war ohne Fehler erfolgreich.

Rudresha Parameshappa
quelle
Vielen Dank - das hat mich den ganzen Nachmittag verrückt gemacht :-)
Indra
2

Was ich getan habe (nach all dem oben genannten und es funktionierte immer noch nicht), war, alle Ordner zu durchsuchen und sie alle zu löschen (dh auch die Projekte, auf die verwiesen wird).

Das hat bei mir funktioniert, hoffe es funktioniert auch bei Ihnen.

Rodney Ellis
quelle
2

Ich hatte dieses Problem und es stellte sich heraus, dass ich usingauf einen leeren Namespace zeigte. Durch Entfernen dieser usingKlausel wurde das Problem behoben

Phate01
quelle
2

Überprüfen Sie die Warnungen.

Ich hatte die neue Klassenbibliothek mit dem Ziel .Net Framework 4.5, während das Referenzierungsprojekt 4.0 war, was zu Referenzproblemen führte.

Nach dem Ändern der Klassenbibliothek mit dem Ziel .NET Framework 4.0 funktionierte es ordnungsgemäß.

Gyansada
quelle
2

Nichts aus den obigen Antworten hat mir geholfen. Nach vielen Experimenten habe ich endlich festgestellt, dass das Problem eine Referenz von Microsoft.Net.Compilers v2.10.0 in einem der Projekte ist. VS 2015 verwendet MSBuild v14, das diese Version von Microsoft.Net.Compilers nicht unterstützt.

Petar Petrov
quelle
1

Für mich stand dieses Problem im Zusammenhang mit einer benutzerdefinierten CodeAnalysis-Regelsatzeinstellung " IncludeAll ".

Es scheint, dass der Compiler diese Einstellung beachtet:

  <IncludeAll Action="Error" />

IntelliSense hat jedoch die Standard-AKTION für die Regel-ID "Warnung" verwendet. Dies würde das Verhalten von @RobertHarvey gesehen erklären , wo Sie die Ausgabe von Build - Filter nur , und es zeigt als ERROR , aber wenn Sie Filter von Intellisene Nur es zeigt als Warnung . Das Filtern der Ausgabe nach dem Standard Build + Intellisense scheint nicht deterministisch!

Mein Fix bestand darin, die Regel, dass ich eine Warnung sein wollte, explizit als Warnung aufzurufen.

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

Dies ist möglicherweise ein Problem, wenn Intellisense die Option IncludeAll nicht beachtet . Siehe https://github.com/dotnet/roslyn/issues/7400

felickz
quelle
1

Dies kann auch passieren, wenn ein Projekt mit einem älteren Framework nach Visual Studio 2015 migriert wird. Überprüfen Sie Ihre Warnungen in Ihrer Fehlerliste. Möglicherweise sehen Sie, dass das Projekt derzeit .NET Version 2.0 ist und .NET 3.5 oder höher erfordert. Wenn Sie eine ähnliche Warnung finden, gehen Sie zu den Eigenschaften Ihres Projekts und wählen Sie das erforderliche .NET Framework aus.

Tyriddik
quelle
1

Bitte überprüfen Sie die Warnungen. Manchmal schlug die Erstellung auch aufgrund von Warnungen fehl.

Krish
quelle
1

Wenn Sie eine Lösung öffnen und generieren, werden auf der Registerkarte "Ausgabe" einige Build-Fehler oder Warnungen angezeigt, während auf der Registerkarte "Fehler" keine Probleme gemeldet werden.

Geben Sie hier die Bildbeschreibung ein

Sie können sehen, dass die Konfiguration "Registerkarte" Fehler "in Ordnung ist (" Nur erstellen "und" Gesamte Lösung "ausgewählt).

Beachten Sie, dass ich nach einer eingehenden Untersuchung festgestellt habe, dass dies nur auftritt, wenn die Registerkarte "Fehler" beim Starten des Builds noch nicht angezeigt wurde!

Wenn Sie vor dem Erstellen die Registerkarte "Fehler" aktiviert haben (oder wenn es sich beim Starten von Visual um die aktuelle Registerkarte handelte), werden neu gefundene Fehler / Warnungen korrekt angezeigt:

Geben Sie hier die Bildbeschreibung ein

Es ist, als ob die Registerkarte "Fehler" nur initialisiert wird, wenn sie sichtbar wird (was möglicherweise zutrifft, da es länger dauert, bis sie beim ersten Klicken angezeigt wird ...), und wenn dies nicht der Fall ist, wird kein Build erfasst Ergebnisse...

Bisher gibt es keine bessere Antwort auf dieses Problem als " Aktivieren Sie die Registerkarte Fehler vor dem Erstellen ".

Und ich wette, deshalb funktioniert "Neustart von VS" manchmal. Sie sehen, dass die Registerkarte "Fehler" leer ist. Sie schließen und wiederholen VS. Anschließend wird standardmäßig "Registerkarte" Fehler "angezeigt, da VS die aktuell aktive Registerkarte aus der vorherigen Sitzung wiederhergestellt hat. Sie erstellen und jetzt wird die Registerkarte "Fehler" ausgefüllt ...! Du hast gerade Glück gehabt.

Hinweis: Es wurde ein VS-Fehler gemeldet: https://connect.microsoft.com/VisualStudio/feedback/details/3132689

jpo38
quelle
Diese Lösung hat bei mir funktioniert. Es ist mir einmal passiert - es wurden keine Warnungen angezeigt. Ich habe das Fenster Fehlerliste geöffnet und die Lösung neu erstellt. Die Warnungen wurden diesmal angezeigt. Ich kann das gleiche Problem auch nach dem Neustart des VS nicht wiedergeben.
IAN
1

Für mich schlug der Build fehlerfrei fehl, aber nach einigen leichten Untersuchungen stellte ich fest, dass die Referenz zu MSHTML von VS nicht gefunden wurde.

Geben Sie hier die Bildbeschreibung ein

Das Verhalten trat nach einem Update auf Windows 10 auf. Um es zu beheben, müssen Sie die Assembly im GAC registrieren. Informationen dazu finden Sie in dieser Antwort- MSHTML-DLL unter Windows 10 , in der ich meine Antwort gefunden habe.

Fid
quelle
0

Aus dieser Antwort entnommen

Kompilierung fehlgeschlagen, im Ausgabefenster wurden keine Fehler angezeigt.

Um den Grund für das Problem zu finden, habe ich die Build-Ausgabe in VS geändert: - Menü "Extras - Optionen" - im linken Bereich: "Projekte und Lösungen: Erstellen und Ausführen": - Ändern Sie "MSBuild Output Verbosity" von " Minimal "bis" Diagnose "

Danach fand ich den wahren Grund, der tatsächlich ein Fehler bei Abhängigkeitsprojekten war. Ich projiziere, dass ich abhängig war, wurde für ein anderes Framework (neuer) als meins gebaut. So entsteht das Problem. Die Fehler wurden nur ausgegeben, als ich die Ausgabeausführlichkeit auf Diagnose stellte

John Demetriou
quelle
Es geht nicht nur darum, das Problem herauszufinden, sondern auch zu lernen, wie man das Problem behebt. Aus diesem Grund habe ich den Debugging-Prozess für andere Antworten eingeschlossen, da ich so herausfinden konnte, was falsch ist. Nicht nur zufällige Vermutungen, was das Problem sein könnte
John Demetriou
0

Für mich war es ein Schurkenobjekt. Das Problem war nicht unbedingt, dass ich keinen Fehler sehen konnte; Der Fehler war der folgende:

Der untergeordnete Knoten "2" wurde vorzeitig beendet. Herunterfahren. Diagnoseinformationen finden Sie möglicherweise in Dateien im Verzeichnis für temporäre Dateien mit dem Namen MSBuild _ *. Failure.txt.

Anfänglich blieb der Build hängen und zeigte keine Fehler an, es sei denn, Sie haben versucht, Visual Studio zu schließen. Nach dem Neustart blieb es beim Erstellen für eine lange Zeit hängen und zeigte dann die obige Meldung an.

Das Löschen versteckter .vsOrdner, das Wiederherstellen / Bereinigen der Lösung und das Neustarten von Visual Studio funktionierten nicht. Das Entfernen der angehängten Eigenschaft hat; Ergo könnte es sich um tatsächlichen Code handeln, der nicht richtig funktioniert.

Als letzten Ausweg würde ich alle kürzlich vorgenommenen Änderungen einzeln entfernen, bis das Problem behoben ist, da keine der hier aufgeführten Lösungen hilfreich war.

Aktualisieren

Da ich es gewohnt bin, traditionelle WPF-Anwendungen zu entwickeln, war mir nicht klar, dass Sie XAML-Namespaces mit .s mit UWP nicht "verkettet" haben können . Ich habe versucht, eine angehängte Eigenschaft mit festzulegen

My.Namespace:SomeClass.SomeProperty="SomeValue"

Während es einfach sein sollte

MyNamespace:SomeClass.SomeProperty="SomeValue"

Es ist nicht so hübsch wie ich es mag, aber es ist anscheinend der einzige Weg.

James M.
quelle
0

Was hat bei mir funktioniert:

Das Schließen aller Dokumente löste das Problem für mich. (Gleiche Lösung, wenn IntelliSense nicht mehr funktioniert)

(Rechtsklick auf die Registerkarte - Alle Dokumente schließen)

Ziv Weissman
quelle
0

Versuche dies

Das Ausschließen "mstscax.dll"von den Abhängigkeiten hat bei mir funktioniert.

Emile Cloete
quelle
0

Nischenproblem: Ich bin gerade auf dasselbe Problem gestoßen. Keine der obigen Antworten schien zu helfen.

Problem war für ein Konsolenprogramm, man kann die Main () -Methode nicht als asynchron markieren **, was ich getan habe. Ich bin mir nicht sicher, warum Visual Studio nicht angeben konnte, warum genau das Projekt nicht erstellt wurde (jedes Mal wurden 0 Fehler und 0 Warnungen angezeigt). Ich verwende Visual Studio 2015 Enterprise.

Fix: Die Lösung dafür ist hier .

user3613932
quelle
0

Nach dem Aktualisieren einer DLL-Datei stellte sich heraus, dass die neue Datei auf eine höhere Version von .NET Framework abzielte. Die Lösung bestand darin, zu Projekteigenschaften zu wechseln und das Zielframework auf die entsprechende Version zu ändern.

nützlichBee
quelle
0

MSBuild.exe wird im Verzeichnis (C: \ Programme (x86) \ MSBuild \ 14.0 \ Bin) geändert.

Also ersetze ich einfach die MSBuild.exe von einem anderen PC, der vs2015 hat.

Jetzt funktioniert es gut.

Sabarish
quelle
0

Ich habe eine Lösung gefunden, indem ich .NET Framework von 4.5.2 auf 4.0 geändert habe.

Das Problem wurde durch eine Referenz verursacht, die nicht mit dem aktuell ausgewählten Framework kompatibel war.

Stefan Đorđević
quelle
0

Ich habe gerade meine Filter gelöscht und es hat bei mir funktioniert. Das Symbol Alle Filter löschen befindet sich in der Nähe des Meldungsfelds.

Nevin Jose
quelle
0

Starten Sie ein neues Projekt. Kopieren Sie Ihren gesamten Code in den folgenden Namespace ConsoleApp38450983450.

Einfügen in ein neues Projekt unter dem Namespace ScrewedUpConsoleApp102343

Perfekt bauen und laufen lassen

Brandon Norris
quelle
-1

Sie sollten das Kombinationsfeld auf der rechten Seite unter der Fehlerliste unter "Gesamte Lösung" einstellen, um alle Fehler anzuzeigen. Geben Sie hier die Bildbeschreibung ein

Milad Koudarzi
quelle
1
Diese ziemlich alte Frage hat bereits eine akzeptierte Antwort. Es scheint nicht so, als ob Ihre sehr kurze und unbeschreibliche Antwort hier viel dazu beiträgt. Bitte verlinken Sie auch nicht auf Bilder auf externen Websites, sondern fügen Sie die Bilder Ihrer Antwort hinzu!
Dux