Ich bin eine .NET 4.0-Anwendung in Visual Studio 2015 zu debuggen. Meine Anwendung erstellt und läuft gut, aber wenn ich versuche zu bearbeiten und während der Ausführung unter dem Debugger fortzusetzen Unabhängig davon, welche Änderungen ich mache oder wo ich sie in meinem Hauptprojekt mache, bekomme ich einen Dialog, der besagt:Fehler CS7038 (Modul konnte nicht gesendet werden) nur in Bearbeiten und Fortfahren
Es wurden Änderungen vorgenommen, die nicht kompiliert werden können. Die Ausführung kann nicht fortgesetzt werden, bis die Compilerfehler behoben sind.
Als ein Beispiel für die Art von Veränderung ich rede, habe ich versucht, diese Zeile in verschiedenen Methoden hinzufügen:
Console.WriteLine("foo");
Wenn ich Visual Studio Fehlerlistenfenster sehen in, ich sehe nur ein Fehler, CS7038, mit der Beschreibung "Fehler beim Senden des Moduls '<my app name>
'." Es wird kein Dateiname, keine Zeilennummer oder kein Zeichen angegeben. In meinem Code sind keine roten Unterstreichungen zu sehen. Wenn ich die laufende Anwendung stoppe, mit den Änderungen baue und erneut laufe, baut alles auf und läuft gut. Es scheint also eine Diskrepanz zu geben zwischen dem, was der Build-Time-Compiler und der Edit-and-Continue-Compiler für akzeptabel halten.
Kennt jemand einen Weg, um mehr Informationen über zu bekommen, warum die Kompilierung im Edit und Continue-Modus fehlschlägt? Ich habe etwas über das Anhängen und Debuggen des VBCSCompiler-Prozesses gelesen, also habe ich das ausprobiert, aber selbst wenn alle Ausnahmetypen beim Auslösen auf Bruch gesetzt sind, ist der angehängte VS nie kaputt gegangen.
Ich teile keinen Code, da dies keine Frage über meinen Code ist, sondern vielmehr über Strategien, um herauszufinden, was der Edit and Continue-Compiler für falsch hält, und für alle, die ich kenne, könnte die Quelle des Compilerfehlers irgendwo in meinem gesamten Projekt sein.
Edit:
Wie in den Kommentaren erwähnt, konnte ich einen Debugger Visual Studio befestigen und brechen, wenn eine Ausnahme bei einem Klick auf „Weiter“ geworfen wurde, nachdem Code bearbeiten. Die Ausnahme war eine System.NotSupportedException
mit der folgenden Meldung: "Das Ändern der Version einer Assembly-Referenz ist während des Debuggens nicht zulässig". Es listet den Namen der betreffenden Assembly auf, die ein kleines VB.Net-Projekt war, das von meiner Anwendung verwendet wird, die meistens in C# ist. Ich versuche ein MCVE zu erstellen, um es an Microsoft zu senden, aber derzeit kann ich das Problem in einer kleineren Lösung mit nur einem VB- und einem C# -Projekt nicht reproduzieren.
Edit 2:
Ich habe eine Abhilfe und Selbst beantwortet die Frage gefunden, falls jemand anders jemals begegnet dieses seltsame Problem, aber ich bin die Reservierung der „Beantwortet“ Häkchen für jeden, der kann Erklären Sie, was passiert (warum der Compiler denkt, dass sich die Versionsnummer des referenzierten Projekts während der Bearbeitung geändert hat).
Haben Sie alle Instanzen von VS beendet und neu gestartet? Hast du VS Einstellungen zurückgesetzt? Wenn nicht, würde ich dort anfangen. – David
Ich habe VS neu gestartet, ja. Habe die VS-Einstellungen nicht zurückgesetzt, was beängstigend klingt. Gibt es eine Möglichkeit, Ihre Einstellungen zu speichern, damit Sie sie wiederherstellen können, wenn das Problem dadurch nicht behoben wird? – adv12
Ja. Gehe zu Extras -> Einstellungen importieren und exportieren. Von dort können Sie die aktuellen Einstellungen speichern (exportieren), alte Einstellungen neu laden (importieren) oder alle zurücksetzen. Wenn Sie "Alles zurücksetzen" auswählen, wird auf dem nächsten Bildschirm gefragt, ob Sie Ihre aktuellen Einstellungen zuerst exportieren möchten (empfohlen). – David