web-dev-qa-db-fra.com

Comment modifier et continuer dans ASP.Net MVC 6

À l'époque, l'utilisation d'anciennes versions de Visual Studio et ASP.NET permettait de modifier le code pendant son débogage (même avec certaines limitations).

Comment puis-je activer l'édition et continuer à utiliser ASP.Net/VNext (MVC 6) avec VS 2015 RC. Cette fonctionnalité est disponible? Le message que je reçois est: 

Error "Les modifications ne sont pas autorisées si le projet n'a pas été construit lors du démarrage du débogage".

Comment puis-je générer le projet lorsque le mode débogage démarre? 

22
J. Lennon

Modifier et continuer ne fonctionne pas pour les applications ASP.NET 5 à ce stade dans Visual Studio 2015, mais il est prévu de le prendre en charge dans la version finale 2015.

Pour plus d'informations sur les modifications apportées à l'EN VS2015, consultez cette entrée de blog: http://blogs.msdn.com/b/visualstudioalm/archive/2015/04/29/net-enc-support-for -lambdas-and-other-améliorations-in-visual-studio-2015.aspx

5
David Roth

J'ai modifié et je continue à travailler dans VS 2015 sur mon projet ASP.Net MVC 4. David R a posté un lien dans sa réponse (ici encore par souci d'exhaustivité)

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

La page indique que VS2015 prend en charge la modification, puis cliquez sur Continuer sur Attacher au processus si une variable d'environnement est définie lors du chargement du moteur d'exécution. Si je comprends bien, cette variable indique dans le CLR d’allouer un peu de mémoire supplémentaire, ce qui est nécessaire pour que Edit et Continue à fonctionner.

Maintenant, l'astuce consiste à charger le processus w3wp.exe exécutant votre pool d'applications avec cette variable. Sur tout autre processus, je voudrais simplement ouvrir une ligne de commande et faire

set COMPLUS_FORCEENC=1
ExeToDebug.exe

Mais je ne pouvais pas trouver un moyen d'exécuter directement mon pool d'applications avec une variable d'environnement. J'ai posté une solution de contournement (comme CSUdev) sur cette page, qui est un petit hack qui définit une variable d'environnement de niveau machine, réinitialise iis, appelle une URL qui démarre le pool d'applications, puis efface la variable d'environnement de niveau machine . http://forums.iis.net/p/1195182/2115550.aspx?p=True&t=635895941266217500

L’opérateur de ce fil de discussion a déclaré qu’il fonctionnait dans les versions précédentes de IIS en définissant des variables d’environnement pour le profil utilisateur que le pool d’applications chargerait ensuite lors du chargement de son profil utilisateur, bien qu’il n’ait pas le travail dans IIS8 (peut être lié aux paramètres de sécurité WS2012/Win8 dans le système d'exploitation).

tldr; voici comment je l'ai fait fonctionner

A écrit le script chauve-souris ...

#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 ""

Ensuite, VS2015 se connecte pour traiter w3wp.exe . Bam. Modifier et continuer. Merci aux gens de MS et VS2015!

7
matrixugly

J'ai ASP.NET MVC5 et je me suis rendu compte que si vous utilisez IIS, Express "Edit and Continue" fonctionne quasiment hors de la boîte. 

Avec "Local IIS" cela ne fonctionne pas, je n'ai pas essayé le paramètre "COMPLUS_FORCEENC" de la publication de matrixugly. 

À cause de cela, nous avons fini par basculer vers IIS Express pour le débogage.

1
Florin D

Cela semble être résolu pour VS 2015 Update 1 pour les projets MVC 6 après l'installation de cette mise à jour de maintenance https://www.Microsoft.com/en-us/download/details.aspx?id=50723

0
Matt Kocaj