it-swarm.com.de

Bearbeiten und Fortfahren in ASP.Net MVC 6

Früher war es mit älteren Versionen von Visual Studio und ASP.NET möglich, den Code während des Debugging (auch mit einigen Einschränkungen) zu bearbeiten.

Wie kann ich die Bearbeitung von ASP.Net/VNext (MVC 6) mit VS 2015 RC aktivieren und verwenden? Diese Funktion ist verfügbar? Die Nachricht, die ich erhalte, ist: 

Error"Änderungen sind nicht zulässig, wenn das Projekt nicht erstellt wurde, als das Debuggen gestartet wurde.".

Wie kann ich das Projekt erstellen, wenn der Debug-Modus gestartet wird? 

22
J. Lennon

Zum jetzigen Zeitpunkt in Visual Studio 2015 ist Bearbeiten und Fortfahren für ASP.NET 5-Anwendungen nicht möglich, es ist jedoch geplant, es in der endgültigen Version 2015 zu unterstützen.

Weitere Informationen zu den VS2015-ENC-Änderungen finden Sie in diesem Blogeintrag: http://blogs.msdn.com/b/visualstudioalm/archive/2015/04/29/net-enc-support-for -lambdas-and-other-Verbesserungen-in-visual-studio-2015.aspx

5
David Roth

Ich habe in VS 2015 die Option "Bearbeiten" und "Weiterarbeiten" für mein ASP.Net MVC 4-Projekt. David R hat in seiner Antwort einen Link gepostet (der Vollständigkeit halber hier nochmal)

http://blogs.msdn.com/b/visualstudioalm/archive/2015/04/29/net-enc-support-for-lambdas-and-other-improvements-in-visual-studio-2015. aspx

Die Seite besagt, dass VS2015 Edit Continue on Attach To Process unterstützt, wenn beim Laden der Laufzeit eine Umgebungsvariable gesetzt wird. So wie ich es verstehe, weist diese Variable in der CLR auf ein wenig zusätzlichen Speicher hin, der zum Bearbeiten und Weiterarbeiten benötigt wird.

Jetzt besteht der Trick darin, dass der Prozess w3wp.exe Ihren Anwendungspool zum Laden mit dieser Variablen ausführt. Bei jedem anderen Vorgang würde ich einfach eine Befehlszeile öffnen und tun

set COMPLUS_FORCEENC=1
ExeToDebug.exe

Ich habe jedoch keine Möglichkeit gefunden, meinen App-Pool direkt mit einer Umgebungsvariablen auszuführen. Ich habe eine Problemumgehung (als CSUdev) auf dieser Seite veröffentlicht. Dies ist ein kleiner Hack, der eine Umgebungsvariable auf Maschinenebene setzt, iis zurücksetzt, eine URL aufruft, die den App-Pool startet, und dann die Umgebungsvariable auf Maschinenebene löscht. http://forums.iis.net/p/1195182/2115550.aspx?p=True&t=6358959412662175

Das OP in diesem Thread gab an, dass dies in früheren Versionen von IIS) funktioniert hat, indem Umgebungsvariablen für das Benutzerprofil festgelegt wurden, die der Anwendungspool beim Laden seines Benutzerprofils laden würde, obwohl dies nicht der Fall war funktioniert nicht in IIS8 (hängt möglicherweise mit den Sicherheitseinstellungen von WS2012/Win8 im Betriebssystem zusammen).

tldr; So habe ich es geschafft

Schrieb Fledermaus-Skript ...

#set Edit n Continue variable (global... :/ )
setx /m COMPLUS_FORCEENC 1

#kill/restart existing app pools
iisreset

#force app pool to start up (and use the Edit & Continue var)
#you can download wget or curl (instead of start) 
#if you don't want this to open up your default browser every time
start "http://localhost/urlForAspNetApp" 

#clear Edit n Continue var
setx /m COMPLUS_FORCEENC ""

Dann VS2015 an Prozess w3wp.exe anhängen. Bam. Bearbeiten und fortfahren. Vielen Dank MS & VS2015 Leute!

9
C. Tewalt

Ich habe ASP.NET MVC5 und erkannte, dass "Bearbeiten und Fortfahren" bei Verwendung von IIS Express praktisch aus der Box funktioniert. 

Mit "Local IIS" funktioniert es nicht, habe aber die Einstellung "COMPLUS_FORCEENC" aus dem Beitrag von Matrixugly nicht ausprobiert. 

Das Umschalten auf IIS Express wurde deshalb zum Debuggen beendet.

1
Florin D

Dies scheint für VS 2015 Update 1 für MVC 6-Projekte behoben zu sein, nachdem dieses Wartungsupdate installiert wurde https://www.Microsoft.com/en-us/download/details.aspx?id=50723

0
Matt Kocaj