Benutzer mit den meisten Antworten
Edits are made which cannot be compiled.

Frage
-
Hallo NG
Habe seit geraumer Zeit folgende Fehlermeldung:
"Edits are made which cannot be compiled. Execution cannot continue until the compile errors are fixed."
Tritt auf wenn ich nach dem setzen eine BreakPoints und der Programmablauf bei diesem stoppt,
eine Programmänderung mache. Ohne Programmänderung habe ich diese Problem nicht.
Wenn ich dann auf Edit drücke gehts nur weiter, wenn ich die Aenderung rückgängig mache.
Auch nur das einfügen eines Kommentars bewirkt diese Meldung.
"Enable Edit and Continue" ist in Tools->Options->Debugging->Edit and Continue gesetzt.
Danke
Robert Oberholzer
Antworten
-
Hallo Robert,
Hallo Frank,
Ich habe das von Robert gemeldete Verhalten reproduzieren können:using System; using Word = Microsoft.Office.Interop.Word; namespace EditAndContinue { class Program { static void Main(string[] args) { Word.Application wordApp = new Word.Application(); wordApp.Visible = false; // hier Breakpoint setzen und auf true ändern } } }
Allerdings: Robert, wenn Du in der Registerkarte 'Fehler' (Ansicht > Fehlerliste) nachschaust, findest Du folgendes:
Durch Ändern von "method", das eine Syntax eines eingebetteten Interoptyps bzw. Members enthält, wird die Fortsetzung des Debugvorgangs verhindert, während "Bearbeiten und fortfahren" aktiviert ist.
Legen Sie zum Aktivieren von "Bearbeiten" und "Fortfahren" die Eigenschaft "Interoptypen einbetten" für COM-Verweise auf "false" fest, wenn Debugging ausgeführt wird.Wir werden uns wohl mit der Erklärung aus dem Fehler-Fenster der IDE und mit der jener aus der VB-Dokumentation begnügen müssen.
[x86, Visual Studio 2010, C#, Office Interop 14.0.0.0]
P.S. Die Fehlerliste bietet einem die Möglichkeit an, Details zum Fehler nachzuschlagen. In diesem Fall wird als Link dies generiert (wobei dazu keine Seite gefunden werden kann):
http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=DE-DE&k=k(VS.CSHARP.ENC.ERROR_4077)&rd=trueGruß
Marcel- Als Antwort vorgeschlagen Marcel RomaModerator Dienstag, 23. November 2010 17:33
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 24. November 2010 15:27
-
Hallo Marcel,
ich kann das auch mit dem von Robert benutzen Excel 14 nachvollziehen.
Es steht dann der Fehler in meiner angegebenen Ansicht/Fehlerliste, was bei Robert nicht so ist. Dennoch sehe das dann auch als Lösung an, da dieser Fehler auch in C# auftritt (kleiner MSDN-Bug).using System; using Excel = Microsoft.Office.Interop.Excel; using System.Windows.Forms; namespace WinInteropDemo { partial class Form1 : Form { public Form1() { Excel.Application app = new Excel.Application(); app.Visible = false; // hier Breakpoint setzen und auf true ändern } } }
- in Menü Ansicht/Fehlerliste [C#]:
Fehler 1 Durch Ändern von "constructor", das eine Syntax eines eingebetteten Interoptyps bzw. Members enthält, wird die Fortsetzung des Debugvorgangs verhindert, während "Bearbeiten und fortfahren" aktiviert ist.
Legen Sie zum Aktivieren von "Bearbeiten" und "Fortfahren" die Eigenschaft "Interoptypen einbetten" für COM-Verweise auf "false" fest, wenn Debugging ausgeführt wird.
Was die MSDN-Doku betrifft (VB->C#) scheint also ein kleiner Fehler vorzuliegen, da dieser auch in der C# Doku dazu hätte direkt zu finden sein müssen.
Indirekt weisen meine Artikel-Links allerdings klar (auch bei C#) darauf hin:
[Exemplarische Vorgehensweise: Office-Programmierung (C# und Visual Basic)]
http://msdn.microsoft.com/de-de/library/ee342218.aspxdort zum Beispiel:
- Ändern Sie im Fenster Eigenschaften den Wert der Eigenschaft Interoptypen einbetten von True in False.
------------------
Weitere Möglichkeiten aus Links, die ich schon am Anfang gepostet hatte:[Gewusst wie: Zugreifen auf Office-Interop-Objekte mithilfe von Visual C# 2010-Funktionen (C#-Programmierhandbuch)]
http://msdn.microsoft.com/de-de/library/dd264733.aspx-
Suchen Sie Interoptypen einbetten in der Liste der Eigenschaften, und ändern Sie den Wert in False.Sie können auch zur Kompilierung die /reference-Compileroption anstelle der /link-Compileroption an einer Eingabeaufforderung verwenden.
__________________
Lösung also (in die positive und negative Richtung verifiziert) :- Klicke auf die "Microsoft.Office.Interop.Excel" unter Verweise im Projekt..
- Drücke ggf. F4, um in die Eigenschaften zu gelangen.
- Gehe zu "Interop-Typen einbetten" und setze den Wert auf false
ciao Frank
- Als Antwort vorgeschlagen Frank Dzaebel Dienstag, 23. November 2010 18:24
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 24. November 2010 15:27
- in Menü Ansicht/Fehlerliste [C#]:
-
Hallo Robert,
hast Du mal explizit das Fenster aus Menü: "Ansicht/Fehlerliste" aufgemacht? Stehen dort keine Fehler, wenn Du die Projektmappe komplett neuerstellt hast?
ciao Frank- Als Antwort vorgeschlagen Frank Dzaebel Dienstag, 23. November 2010 18:25
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 24. November 2010 15:26
-
Hallo Zusammen,
Vielen Dank für Eure Antworten. Hier ein kleiner Zwischenbericht.
Habe die Referenzen zu Microsoft.cSharp.dll, Microsoft.Office.Interop.Excel, Word und Outlook entfernt.
Entsprechende Stellen in Code auskommentiert. Und es läuft.
Wenn ich nun wieder die Referenz zu Microsoft.cSharp.dll V4.0 und Microsoft.Office.Interop.Excel V14.0 hinzufüge,habe ich wieder den Fehler.
Es langt wenn beim Programmunterbruch bei einem BreakPoint irgendwo eine Kommandozeile eingefügt wird.
Lösung: Bei Microsoft.Office.Interop.Excel, Word, Office in Properties "Embed Interop Types" auf False stellen. So geht's.Gruss Robert
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 24. November 2010 15:27
-
Hallo Robert,
Laut MSDN: "Dieser Fehler tritt auf, wenn Sie versuchen, die Funktion zum Bearbeiten und Fortfahren mit einem Methodentext zu verwenden, der sich auf einen Typ auswirkt, der von einer primären Interopassembly eingebettet wurde. Interoptypen werden standardmäßig in Visual Studio 2010 aktiviert. Daher kann durch ein Projekt, von dem der Fehler beim Debuggen mit Visual Studio 2008 nicht verursacht wurde, der Fehler beim Debuggen mit Visual Studio 2010 verursacht werden."
Bearbeiten und Fortfahren (Visual Basic): 35662:
http://msdn.microsoft.com/de-de/library/ee519065.aspxGruß
Marcel- Als Antwort vorgeschlagen Frank Dzaebel Dienstag, 23. November 2010 18:25
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 24. November 2010 15:26
Alle Antworten
-
Hi,
ggfs. hilft es, wenn Du die richtige Fehlermeldung mal in eine Suchmaschine eintippelst :)
http://www.google.de/#q="Edits+were+made+which+cannot+be+compiled" (are vs. were)
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo Stefan,
Sorry für den Verschreiber "are / where".
Selbstverständlich habe ich mich in der Suchmaschiene umgeschaut.
Leider ohne Erfolg. Es wird viel geschrieben aber leider ohne Lösung für mein Problem.
Wie gesagt tritt es bei mir nur nach einem BreakPoint-Stop und anschliessendem editieren auf.
Gruss Robert Oberholzer
-
Hallo Robert,
Sorry für den Verschreiber "are / where".
Leider ohne Erfolg. Es wird viel geschrieben aber leider ohne Lösung für mein Problem.
Wie gesagt tritt es bei mir nur nach einem BreakPoint-Stop und anschliessendem editieren auf.
Poste mal bitte die genaue Versionsnummer deiner Visual Studio Installation.
Dann wäre es noch hilfreich zu wissen, ob es bei jedem Projekt oder nur bei bestimmten Projekttypen passiert.
Ggfs. ist das hier auch "hilfreich" (allerdings nur zur Bestätigung, dass es wohl ein Bug ist)
http://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/15c94bf2-66ca-4963-a7a4-27cb0840d811/
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Leider ohne Erfolg. Es wird viel geschrieben aber leider ohne Lösung für mein Problem.
Robert, zB hier
http://connect.microsoft.com/VisualStudio/feedback/details/584811/
wird zu ähnlichem gesagt:
"We will look into improving this experience in future versions of Visual Studio"
also wohl grob 2 Jahre Geduld ;-)
(oder IMHO zT besser, auf EnC verzichten)
Weitere auch
http://www.google.com/search?q=%22Execution+cannot+continue+until+the+compile+errors+are+fixed%22+site:microsoft.com&filter=0
zT Probleme wenn Netzlaufwerke im Spiel;
oder (nach Backup!) zB auch mal temporäre Projektdateien (.suo / .user) löschen. Ansonst vielleicht auch mal Umfang von Projekt/Solution schrittweise reduzieren oder Code in neue Solution migrieren, insbesondere wenn Fremd-Komponenten eingesetzt.
Oder Studio mal im zB SafeMode starten:
http://msdn.microsoft.com/en-us/library/xee0c8y7.aspx
-
Hallo Robert,
hast Du mal explizit das Fenster aus Menü: "Ansicht/Fehlerliste" aufgemacht? Stehen dort keine Fehler, wenn Du die Projektmappe komplett neuerstellt hast?
ciao Frank- Als Antwort vorgeschlagen Frank Dzaebel Dienstag, 23. November 2010 18:25
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 24. November 2010 15:26
-
-
Hallo Zusammen,
Vielen Dank für Eure Antworten. Hier ein kleiner Zwischenbericht.
Habe die Referenzen zu Microsoft.cSharp.dll, Microsoft.Office.Interop.Excel, Word und Outlook entfernt.
Entsprechende Stellen in Code auskommentiert. Und es läuft.
Wenn ich nun wieder die Referenz zu Microsoft.cSharp.dll V4.0 und Microsoft.Office.Interop.Excel V14.0 hinzufüge,habe ich wieder den Fehler.
Es langt wenn beim Programmunterbruch bei einem BreakPoint irgendwo eine Kommandozeile eingefügt wird.
Lösung: Bei Microsoft.Office.Interop.Excel, Word, Office in Properties "Embed Interop Types" auf False stellen. So geht's.Gruss Robert
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 24. November 2010 15:27
-
Hallo Robert,
Laut MSDN: "Dieser Fehler tritt auf, wenn Sie versuchen, die Funktion zum Bearbeiten und Fortfahren mit einem Methodentext zu verwenden, der sich auf einen Typ auswirkt, der von einer primären Interopassembly eingebettet wurde. Interoptypen werden standardmäßig in Visual Studio 2010 aktiviert. Daher kann durch ein Projekt, von dem der Fehler beim Debuggen mit Visual Studio 2008 nicht verursacht wurde, der Fehler beim Debuggen mit Visual Studio 2010 verursacht werden."
Bearbeiten und Fortfahren (Visual Basic): 35662:
http://msdn.microsoft.com/de-de/library/ee519065.aspxGruß
Marcel- Als Antwort vorgeschlagen Frank Dzaebel Dienstag, 23. November 2010 18:25
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 24. November 2010 15:26
-
Hallo Robert,
da wir hier in einer C# Gruppe sind hier die korrekten Referenzen zu "Edit & Continue" nachgereicht:
[Bearbeiten und Fortfahren (Visual C#)]
http://msdn.microsoft.com/de-de/library/x17d7wxw(v=VS.100).aspx[Unterstützte Codeänderungen (C#)]
http://msdn.microsoft.com/de-de/library/ms164927.aspx
(siehe hier auch "nicht unterstützte Szenarios")Vielleicht kannst Du uns auch die Fehlernr sagen. Dann kann man hier Hintergrundinformationen dazu erfahren:
[Bearbeiten und Fortfahren: Fehlermeldungen und Warnungen (C#)]
http://msdn.microsoft.com/de-de/library/ms164930.aspxBTW: im Menü Anzeige/Fehlerliste war kein Fehler - korrekt?
Bitte zur Sicherheit auch noch mal die Visual Stduio Version angeben, denn die Fehler-Typen sind von dieser Version abhängig. . (und ob x64 oder x86).
Es ist ein guter Weg, ein reproduzierbares Projekt zu erstellen (Du hast ihn schon beschritten).
BTW: hier auch nochmal der visuelle Dialog (weiter unten im Artikel), der Deiner Meldung "Error were made ...." zum Vorschein kommt, der durchaus "by design" so angezeigt ist.
ciao Frank- Bearbeitet Frank Dzaebel Dienstag, 23. November 2010 16:17
-
Hallo Frank,
da wir hier in einer C# Gruppe sind hier die korrekten Referenzen zu "Edit & Continue" nachgereicht:
[Bearbeiten und Fortfahren (Visual C#)]
http://msdn.microsoft.com/de-de/library/x17d7wxw(v=VS.100).aspx[Unterstützte Codeänderungen (C#)]
http://msdn.microsoft.com/de-de/library/ms164927.aspx
(siehe hier auch "nicht unterstützte Szenarios")[Bearbeiten und Fortfahren: Fehlermeldungen und Warnungen (C#)]
http://msdn.microsoft.com/de-de/library/ms164930.aspx
Hast Du denn die konkrete C#-Entsprechung des o.g. VB-Links gefunden? Dann reich sie doch bitte nach. Die von Dir geposteten Links sind eher allgemein, wenn ich mich nicht irre.
Gruß
Marcel -
Hallo Marcel,
Dein Link gilt so nicht für C#! Der ist für Visual Basic. [Edit: kann aber trotzdem in C# auftreten].
Allgemein gültige Hinweise zur Typeinbettung für C# (und VB) bzgl. Typ-Einbettung kannst Du hier finden:
[Exemplarische Vorgehensweise: Einbetten von Typinformationen aus Microsoft Office-Assemblys (C# und Visual Basic)]
http://msdn.microsoft.com/de-de/library/ee317478.aspx[Exemplarische Vorgehensweise: Einbetten von Typen aus verwalteten Assemblys (C# und Visual Basic)]
http://msdn.microsoft.com/de-de/library/dd409610.aspx
> eher allgemeinich denke, wenn man genau liest, schon recht dediziert. Ich warte ja noch auf die Fehlernr, Version, x64/x86 etc. fehlt (die Fragen an ihn).
Wenn man den möglichen Fehlernummern-Beschreibungen durchlesen würde, ist es extrem (zu) detaillert.
Ich warte hier erstmal seine Antwort auf meine Frage ab.
ciao Frank- Bearbeitet Frank Dzaebel Dienstag, 23. November 2010 18:38
-
Hallo Frank
Hier nochmals die Antworten auf Deine Fragen.Habe sie schon einmal geschickt sind aber irgendwie nicht gesendet worden.
Leider bekomme ich keine Fehlernummer in beiden von meinen Projekten. (Test und Produktiv Aplikation).
Nur ein Fenster "Edit and Contignue" mit den beiden Buttons Edit und Stop sowie der Meldung:
"Edits were made which cannot be compiled. Execution cannot continue until the compile errors are fixed."
Ich erhalte keine Anzeige in Anzeige / Fehlerliste weder beim Neu erstellen noch während der Ausführung.
Visual Studio 2010 Version: 10.0.30319.1 RTMRel
.NET Framework Version 4.0.30319 RTMRel
X86
Gruss Robert
-
Hallo Frank,
> Dein Link gilt so nicht für C#!
Willst Du damit sagen, dass das, was in VB hinsichtlich Edit & Continue nicht möglich ist, unter C# plötzlich funktioniert?
Die C#-spezifische Enstprechung zum VB-Link konnte ich genausowenig finden wie Du ;-)
Ich hatte natürlich im Vorfeld alle C#-Fehlermeldungen und Warnungen durchgesehen, ohne aber Entsprechendes finden zu können - deshalb der Verweis auf die VB-Dokumentation, die im Übrigen ziemlich genau das beschreibt, was Robert beim Debuggen seiner Anwendung erlebt.
Zitat MSDN: So beheben Sie diesen Fehler - Legen Sie während des Debuggings die Eigenschaft "Interoptypen einbetten" für alle COM-Verweise auf "False" fest.
Zitat Robert: Lösung: Bei Microsoft.Office.Interop.Excel, Word, Office in Properties "Embed Interop Types" auf False stellen.
Gruß
Marcel -
Hallo Robert,
Hallo Frank,
Ich habe das von Robert gemeldete Verhalten reproduzieren können:using System; using Word = Microsoft.Office.Interop.Word; namespace EditAndContinue { class Program { static void Main(string[] args) { Word.Application wordApp = new Word.Application(); wordApp.Visible = false; // hier Breakpoint setzen und auf true ändern } } }
Allerdings: Robert, wenn Du in der Registerkarte 'Fehler' (Ansicht > Fehlerliste) nachschaust, findest Du folgendes:
Durch Ändern von "method", das eine Syntax eines eingebetteten Interoptyps bzw. Members enthält, wird die Fortsetzung des Debugvorgangs verhindert, während "Bearbeiten und fortfahren" aktiviert ist.
Legen Sie zum Aktivieren von "Bearbeiten" und "Fortfahren" die Eigenschaft "Interoptypen einbetten" für COM-Verweise auf "false" fest, wenn Debugging ausgeführt wird.Wir werden uns wohl mit der Erklärung aus dem Fehler-Fenster der IDE und mit der jener aus der VB-Dokumentation begnügen müssen.
[x86, Visual Studio 2010, C#, Office Interop 14.0.0.0]
P.S. Die Fehlerliste bietet einem die Möglichkeit an, Details zum Fehler nachzuschlagen. In diesem Fall wird als Link dies generiert (wobei dazu keine Seite gefunden werden kann):
http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=DE-DE&k=k(VS.CSHARP.ENC.ERROR_4077)&rd=trueGruß
Marcel- Als Antwort vorgeschlagen Marcel RomaModerator Dienstag, 23. November 2010 17:33
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 24. November 2010 15:27
-
Hallo Marcel,
ich kann das auch mit dem von Robert benutzen Excel 14 nachvollziehen.
Es steht dann der Fehler in meiner angegebenen Ansicht/Fehlerliste, was bei Robert nicht so ist. Dennoch sehe das dann auch als Lösung an, da dieser Fehler auch in C# auftritt (kleiner MSDN-Bug).using System; using Excel = Microsoft.Office.Interop.Excel; using System.Windows.Forms; namespace WinInteropDemo { partial class Form1 : Form { public Form1() { Excel.Application app = new Excel.Application(); app.Visible = false; // hier Breakpoint setzen und auf true ändern } } }
- in Menü Ansicht/Fehlerliste [C#]:
Fehler 1 Durch Ändern von "constructor", das eine Syntax eines eingebetteten Interoptyps bzw. Members enthält, wird die Fortsetzung des Debugvorgangs verhindert, während "Bearbeiten und fortfahren" aktiviert ist.
Legen Sie zum Aktivieren von "Bearbeiten" und "Fortfahren" die Eigenschaft "Interoptypen einbetten" für COM-Verweise auf "false" fest, wenn Debugging ausgeführt wird.
Was die MSDN-Doku betrifft (VB->C#) scheint also ein kleiner Fehler vorzuliegen, da dieser auch in der C# Doku dazu hätte direkt zu finden sein müssen.
Indirekt weisen meine Artikel-Links allerdings klar (auch bei C#) darauf hin:
[Exemplarische Vorgehensweise: Office-Programmierung (C# und Visual Basic)]
http://msdn.microsoft.com/de-de/library/ee342218.aspxdort zum Beispiel:
- Ändern Sie im Fenster Eigenschaften den Wert der Eigenschaft Interoptypen einbetten von True in False.
------------------
Weitere Möglichkeiten aus Links, die ich schon am Anfang gepostet hatte:[Gewusst wie: Zugreifen auf Office-Interop-Objekte mithilfe von Visual C# 2010-Funktionen (C#-Programmierhandbuch)]
http://msdn.microsoft.com/de-de/library/dd264733.aspx-
Suchen Sie Interoptypen einbetten in der Liste der Eigenschaften, und ändern Sie den Wert in False.Sie können auch zur Kompilierung die /reference-Compileroption anstelle der /link-Compileroption an einer Eingabeaufforderung verwenden.
__________________
Lösung also (in die positive und negative Richtung verifiziert) :- Klicke auf die "Microsoft.Office.Interop.Excel" unter Verweise im Projekt..
- Drücke ggf. F4, um in die Eigenschaften zu gelangen.
- Gehe zu "Interop-Typen einbetten" und setze den Wert auf false
ciao Frank
- Als Antwort vorgeschlagen Frank Dzaebel Dienstag, 23. November 2010 18:24
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 24. November 2010 15:27
- in Menü Ansicht/Fehlerliste [C#]: