Frage

Ich bin mit Visual Studio 2008, C #. Ich versuche zu verwenden edit-and-continue (den Code bearbeiten, während das Debuggen), und erhalten diese Ausnahme:

"Änderungen an 64-Bit-Anwendungen sind nicht erlaubt"

Warum ist das so? Gibt es eine Abhilfe?

War es hilfreich?

Lösung

Bearbeiten und Fortfahren nicht an der CLR-Ebene auf 64-Bit-Anwendungen unterstützt, so gibt es keine Möglichkeit für Visual Studio ist es entweder zu implementieren.

Der einfachste Weg, um dieses Problem zu arbeiten, ist Ihre Anwendung auf x86-Chips zum Ziel. Dadurch wird es in Wow64 Modus als 32-Bit-Prozess und damit in der Lage zu ENC laufen. Sie können dies tun, indem Sie die folgenden tun

  1. Rechtsklick auf die Exe-Anwendung und wählen Sie Eigenschaften
  2. Gehen Sie auf die Registerkarte Build
  3. Ändern Sie die Plattform Zielkombinationsfeld x86

eingeben Bild Beschreibung hier

Andere Tipps

Persönlich, was ich wirklich will, ist im Stop-and-edit nicht bearbeiten und fortsetzt.

Also habe ich einfach ausschalten Tools / Options / Debugging / Bearbeiten und Fortfahren.

Dadurch hemmt, so dass nervtötendes Dialogfeld von mir bedrängt über eine fehlende Funktion, die ich nicht in erster Linie wollte: -)

Das "Bearbeiten und Fortfahren" -Funktion für 64-Bit-Code wird unter Visual Studio 2013 unterstützt werden.

Weitere Informationen hier .

Wie jcopenha sagte, es gibt keine edit-und-weiter auf x64 noch. Die aktuelle Version der 64-Bit-CLR unterstützt es nicht. Allerdings gibt es eine Arbeit um.

Sie können es finden auf Bug Babble Post .

  

Sie benötigen eine verwaltete Assembly mit einer Ziel-CPU von x86 zu kompilieren. Dies bewirkt, dass die 32-Bit-CLR verwendet werden, anstatt die 64-Bit-CLR.

     

Für ein VB-Projekt, klicken Sie rechts auf das Projekt und gehen Sie zu Eigenschaften / Compile / Erweiterte Kompilierungsoptionen / Ziel-CPU und setzt sie auf „x86“.   Für ein C # Projekt klicken Sie rechts auf dem Projekt und gehen Sie zu Properites / Bauen / Plattform Ziel und setzt sie auf „x86“.

Hoffe, es hilft.

Die Edit-and-Continue-Funktion hat einfach nicht in x64 noch implementiert. Ich habe kein Updates auf zu hören, wenn sie planen, es noch zu tun.

Siehe auch Warum bearbeitet nicht und Fortfahren arbeitet auf der x64 CLR?

Ich hatte die gleiche Fehlermeldung in MS Visual C # Express 2010 Es war komisch, aber, weil die Anwendung auf jedem Fall als x86-Projekt konfiguriert wurde!

Am Ende war es die folgende Zeile in meiner CSPROJ Datei fehlt:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'MY_CONFIG|x86'">
    ...
    <PlatformTarget>x86</PlatformTarget>
    ...
</PropertyGroup>

Ich weiß nicht, warum es fehlte ... Ich denke, MS Visual C # Express 2010 wird nicht bugfree;)

  1. , wenn Ziel-CPU auf ‚Any CPU‘ gesetzt ist, wird es als 32-Bit-Anwendung auf einem 32-Bit-Windows läuft, und 64-Bit-Anwendung auf einem 64-Bit-Windows. Allerdings Visual Studio erlaubt es nicht, 'edit-and-Continue' -Funktion für 64-Bit-Anwendung.

  2. Um zu debuggen 'fließend' auf 64-Bit-Maschine, wir haben folgende Möglichkeiten:

    a) gesetzt 'Target-CPU' auf 'Any CPU', aber überprüfen Sie die 'Bevorzugen 32bit' ein.

    b) oder, stellen 'Target-CPU' auf 'x86'

Sehr wichtig:. Beide Option erfordert die Box 'Optimierungen aktivieren' nicht angehakt sein

Leider Bearbeiten und Fortfahren nicht auf 64-Bit unterstützt. In der Tat, wenn Sie bearbeiten zu verwenden versuchen und fortfahren, wenn eine Anwendung 64-Bit-Debuggen, erhalten Sie die folgende Fehlermeldung: „Änderungen an 64-Bit-Anwendungen sind nicht erlaubt“ Viele Benutzer sind möglicherweise nicht bewusst sein, dass standardmäßig, wenn Sie ein C # oder VB-Projekt in Visual Studio 2008, die „Plattform“ für das Projekt erstellen wird auf „Jede CPU“. Dies bedeutet, dass, wenn Sie Ihre Anwendung auf einem 32-Bit-Betriebssystem ausgeführt werden, die Anwendung als 32-Bit-Prozess ausgeführt wird und in ähnlicher Weise, wenn Sie Ihre Anwendung auf einem 64-Bit-Betriebssystem ausgeführt wird, wird die Anwendung 64-Bit sein. Die Folge von „Any CPU“ ist, dass, wenn Sie versuchen, Ihre Anwendung zu debuggen auf einem 64-Bit-Betriebssystem, werden Sie nicht in der Lage sein, die Bearbeitung zu verwenden und Funktion weiter.

Allerdings ist es eine Abhilfe. Während der Entwicklung können Sie die Plattform für Ihr Projekt zu 32-Bit gesetzt, was bedeutet, dass Ihre Anwendung als 32-Bit-Prozess sogar auf einem 64-Bit-Betriebssystem ausgeführt wird. Dies ist bekannt als WOW64 oder „Windows Unter Windows“, die im Grunde bedeutet, dass Sie eine 32-Bit-Anwendung auf einem 64-Bit-Betriebssystem ausgeführt werden können.

So, wie stellen Sie die Plattform für Ihr Projekt zu 32-Bit? Nun, müssen Sie eine 32-Bit-Plattform zu schaffen, die Visual Studio Configuration Manager. Hier ist ein kurzer Durchlauf.

Öffnen Sie zunächst das "Configuration Manager" -Dialog von Build--> Configuration Manager. Der Configuration Manager Dialog ist unten dargestellt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top