wake-up-neo.com

So finden Sie den Grund für einen fehlerhaften Build ohne Fehler oder Warnungen

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

Beim Erstellen mit Visual Studio 2010 schlägt das Erstellen ohne Fehler oder Warnungen fehl. Das Erstellen von .csproj mithilfe von MsBuild ist jedoch erfolgreich.

Ich kann nicht herausfinden, was ich in Visual Studio versuchen sollte, um das Problem zu lösen/zu diagnostizieren. Kannst du bitte helfen?

BEARBEITEN:

Ich finde heraus, dass der Build versagt hat,

  1. Von dem in der Statusleiste angezeigten Text.
    enter image description here

  2. Vom Ausgabefenster:

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

Ich bin gerade in eine ähnliche Situation geraten. In meinem Fall schlug eine benutzerdefinierte Aktion (aus dem MSBuildVersioning-Paket auf Nuget.org - http://www.nuget.org/packages/MSBuildVersioning/ ), die im BeforeBuild-Ziel der csproj-Datei enthalten war, fehl, ohne eine auszulösen Fehlermeldung an der normalen Stelle.

Ich konnte dies feststellen, indem ich die Ausgabebosität des MSBuild-Projekts für den Build (in Visual Studio unter Optionen/Projekte und Lösungen/Build and Run-Einstellungsbereich) auf "Diagnose" setzte, wie unten gezeigt. Dies zeigte dann, dass die benutzerdefinierte Aktion (in meinem Fall HgVersionFile) fehlgeschlagen war.

Screen capture from Visual Studio showing the modified setting.

65
  • Wenn die Lösung mehrere Projekte enthält, versuchen Sie, sie einzeln zu erstellen.
  • Versuchen Sie, Visual Studio neu zu starten.
  • Starten Sie den Computer neu.
  • Versuchen Sie " Alles neu erstellen "
  • Versuchen Sie " Clean Solution ", entfernen Sie dann Ihre " vspscc " - Dateien und " vssscc " - Dateien und starten Sie dann Visual Studio neu und anschließend " Rebuild All ".
54
Sasse

Build + Intellisense hat die Fehlernachrichten verschluckt . Durch Auswahl von Build Only wurden sie angezeigt.

 Screenshot

51
Abu Abdullah

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

19
Ignas Vyšnia

Ich möchte auf Sasses Antwort eingehen.

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

Ein Projekt hat mir gegeben 

"Der Typ- oder Namespace-Name 'SomeNamespace' ist im Namespace 'BeforeSomeNamespace' nicht vorhanden (fehlt eine Assemblyreferenz?)" 

Im Fehlerlistenfenster ist kein Fehler aufgetreten, die Assembly hatte jedoch ein gelbes Warnzeichen unter "Verweise". 

Ich habe dann gesehen, dass das referenzierende Projekt auf 4.5.1 und das referenzierte Projekt 4.6.1 ausgerichtet war. Durch die Änderung von 4.6.1 auf 4.5.1 konnte der gesamte Build erfolgreich abgeschlossen werden.

8
user764754

Nichts hat für mich funktioniert, also habe ich die .suo-Datei gelöscht, VS neu gestartet, die Projektion gesäubert und der Build funktioniert.

5
Andy

Scheint, dass es mehrere Antworten auf diese Frage gibt, also werde ich meine aus persönlicher Erfahrung hinzufügen, in der Hoffnung, dass es jemandem Zeit/Stress erspart.

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 (zwischen mehreren hundert nutzlosen XML-Warnungen ...), der besagte, dass ein Projekt auf eine andere .NET-Version abzielte als auf 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 funktioniert auch mit dieser Diskrepanz (daher war es nur eine Warnung), aber leider hat es den Build gebrochen.

Der seltsame Teil war, dass es eine Weile gut gebaut/gelaufen ist, aber plötzlich fing es an, fehlzuschlagen, was dieses Problem verursachte. Ich bin 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.

4
Alan Thomas

Zuerst "Clean the Solution", dann Rebuild-Lösung.

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

Versuchen Sie diese Dinge, hoffe es funktioniert auf jeden Fall.

3
Santosh K

Bei einer anderen Möglichkeit muss Visual Studio als Administrator ausgeführt werden. Dies kann mit der Bereitstellung auf einem lokalen IIS -Server oder einer anderen Bereitstellungsanforderung zusammenhängen.

3
Bill Yang

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

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

Beim Überprüfen der Referenzen von TestRunner wurde der Verweis auf TestCleaner sicher als nicht aufgelöst markiert und der Pfad fehlte in den Referenzeigenschaften. Löschen und erneutes Hinzufügen wurde nicht behoben. Wieder keine Erklärung warum.

nicht aufgelöste Referenz

Schließlich habe ich die Ursache entdeckt: "TestCleaner" verwendete ein anderes Zielframework als die anderen Projekte. Es war .Net 4.5.2; die anderen waren 4.5.

2
Ben Whitmore

Ich habe den .vs-Ordner gelöscht und VS neu gestartet, funktioniert jetzt einwandfrei

 enter image description here

2
Arun Prasad E S

Ich hatte das gleiche Problem und ich habe dieses Problem auf die Optionen Error List "Build + Intellisense" zurückgeführt. 

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

Es sieht aus wie ein Fehler in Visual Studio. Beim Neustart des Visual Studios wurde dieses Problem gelöst .

2

Nur um der Vollständigkeit halber zu helfen und vielleicht jemandem zu helfen, der in Zukunft erneut denselben Fehler entdeckt, habe ich die Metro-Schnittstelle von Mahapps verwendet und die XAML eines Fensters geändert. Ich vergaß jedoch, die Teilklasse im Code-Behind zu ändern. In diesem Fall schlug der Build ohne Fehler oder Warnung fehl und ich konnte es herausfinden, indem ich die Ausführlichkeit der Ausgabe anhand der Einstellungen erhöhte:

 Error pane

 output pane

2
mcy

Ich hatte das gleiche Problem. Das Fehlerlistenfenster enthält zwei Dropdown-Listen "Elemente anzeigen in" und "Probleme anzeigen". Diese Namen sind sichtbar, wenn Sie mit der Maus über das Dropdown-Menü fahren. Das Dropdown-Menü "Probleme anzeigen" wurde auf "Build + IntelliSense" gesetzt. Nach dem Ändern auf "Nur Build" wurden die Fehler in der Liste angezeigt.

2
Jakub

dies kann vorkommen, wenn eines der referenzierten Projekte eine höhere Version von .NET Framework ist als Ihr aktuelles Projekt.

2
mcmillab

Für mich war das Löschen des .vs-Ordners aus dem Stamm der Projektmappe und der Neustart von Visual Studio ein Problem.

Es kann auch wichtig sein zu sagen, dass die Fehler auch in der Ausgabe aus dem Build vorhanden waren, obwohl die Fehler nicht in der Fehlerliste angezeigt wurden.

1
Ronald Rey

Gehen Sie zum Ausgabefenster und suchen Sie nach "Fehler" im Ausgabefenster TADA

1
Mahdi Khalili

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 Buildfehlermeldungen wiedergibt.

0
user3810867

Ein anderer Weg, um dieses Symptom zu reproduzieren:

Ich habe einer vorhandenen Lösung ein neues Projekt hinzugefügt und in der Build-Ausgabe wurden Fehler wie "Der Typ oder der Namespace-Name X wurde nicht gefunden ..." gemeldet, aber in der Fehlerliste wurden keine Fehler 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.

0
Devosaur

Ich hatte das gleiche Problem, ich änderte die Werkzeuge -> Optionen -> Projekte und Lösungen/Build and Run -> MSBuild-Projektprotokolldatei [Diagnose]. Diese Option zeigt einen Fehler im Protokoll an. Aus irgendeinem Grund zeigt mein VS keinen Fehler in der Registerkarte Fehler an!

 enter image description here

Nehmen Sie die obigen Einstellungen vor und kopieren Sie sie in Notepad/Texteditor und suchen Sie nach Fehlern. Es werden Ihnen alle Fehler angezeigt.

0

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

0
Mosta

Wenn das Nuget-Paket 'Microsoft.Net.Compilers' installiert ist, stellen Sie sicher, dass es zur Version von Visual Studio (Build Tools-Version) passt.

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

Aktualisieren Sie daher nicht auf die Version 1.x, wenn Sie VS2015 verwenden

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

0
Roman M

Ich hatte das gleiche Problem, nachdem ich ein paar Formulare gelöscht hatte. Die Fehler sind aufgetaucht, als ich in den Code gegangen bin und eine "Show Definition" für eines der entfernten Steuerelemente ausgeführt habe.

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

0
Dennis Kuypers

Das Visual Studio neu zu starten 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.

0

Es kann sich um unterschiedliche reportviewer-Version in Ihrem Projekt und VS handeln

0
user3706939

Dies ist mir passiert, nachdem ich einem asp.net-Projekt eine neue Seite hinzugefügt habe.

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

Dann fügte ich die Seite mit dem gesamten auskommentierten Code zurück. Erfolg.

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

0
toddmo

Ich hatte ein wirklich altes Projekt auf einer älteren Maschine. Das Projekt wurde korrekt erstellt, als ich die Maschine ausschaltete. Heute bekomme 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 wenige Details zum Build, aber keine Fehler. Danach habe ich versucht, Erweiterungen und Updates (Tools> Erweiterung und Updates) zu überprüfen, und es wurde festgestellt, dass einige davon ein Update benötigten.

Nuget Package war nach dem Update von Nuget - Täter schuld.

 enter image description here

0
spicet

Ich stand vor dem gleichen Problem! Löschen Sie einfach den Ordner bin und starten Sie Ihr VS neu. Das ist alles. getestet in VS 2013.

0
John

Ich habe alles versucht, aber in meinem Fall hat nichts funktioniert. Dann habe ich diese Einstellungen geändert, was das Problem für mich recht gut gelöst hat. Versuchen Sie es, wenn Sie letzteren Zuschauern helfen könnten Stellen Sie jedoch sicher, dass Sie alle DLLs mit den gleichen Konfigurationseinstellungen erstellen, die Sie anfangs beibehalten haben (im Bild erwähnt).  Configuration Settings

 Image here.

Prost!

0
Iqra.