Modifier et continuer: «Les modifications ne sont pas autorisées lorsque…»

Même si je crée un projet WinForms propre, Edit and Continue ne fonctionne pas et me donne l’erreur suivante:

Les modifications ne sont pas autorisées lorsque le débogueur a été associé à un processus en cours d’exécution ou que le code en cours de débogage a été optimisé lors de la génération ou de l’exécution.

  1. L’option Modifier et continuer est cochée dans Outils → Options → Débogage.
  2. L’optimisation n’est pas activée.
  3. On dirait qu’il n’y a pas de profileur géré configuré.
  4. Je cours en mode Debug
  5. J’utilise un processeur x64 et Windows XP 32 bits, mais définir la cible de la plate-forme sur x86 plutôt que AnyCpu n’aide pas.
  6. Réparer l’installation de Visual Studio n’aide pas.

J’ai également trouvé cet article sur le site MSDN:

Scénarios non pris en charge

Modifier et Continuer n’est pas disponible dans les scénarios de débogage suivants:

  • Débogage sur Windows 98.

  • Débogage en mode mixte (natif / géré).

  • Débogage SQL.

  • Déboguer un vidage Dr. Watson.

  • Modification du code après une exception non gérée, lorsque l’option “Dérouler la stack des appels lors d’exceptions non gérées” n’est pas sélectionnée.

  • Débogage d’une application d’exécution incorporée.

  • Déboguer une application avec Attacher à au lieu d’exécuter l’application avec Démarrer dans le menu Déboguer.

  • Débogage du code optimisé.

  • Débogage du code managé lorsque la cible est une application 64 bits. Si vous souhaitez utiliser Edition et Continuer, vous devez définir la cible sur x86. (Propriétés du projet, onglet Comstackr, Paramètres avancés du compilateur.).

  • Débogage d’une ancienne version de votre code après la création d’une nouvelle version en raison d’erreurs de génération.

Mais je peux répondre “Non” à chaque élément de cette liste.

Cela a fonctionné avant, mais il y a plusieurs jours, il a cessé de fonctionner, et je ne sais pas quelle pourrait en être la raison.

J’ai finalement réussi à résoudre le problème: UNINSTALL Gallio

Gallio semble avoir pas mal de difficultés et il vaut mieux ne pas utiliser MbUnit 3.0, mais utiliser le framework MbUnit 2.0 mais utiliser le runner gallio que vous utilisez sans installer depuis l’installateur (qui a également installé un plugin Visual Studio).

Incidemment, j’ai eu le problème même après avoir “désactivé” le plugin Gallio. Seule la désinstallation a résolu le problème.

PS Edité par nightcoder:
Dans mon cas, la désactivation de TypeMock Isolator (cadre moqueur) a finalement aidé ! Edit & Continue maintenant fonctionne !!!

Voici la réponse du support de TypeMock:

Après avoir approfondi le problème de l’édition et de la poursuite, et en avoir discuté avec Microsoft, nous sums arrivés à la conclusion qu’il ne peut pas être résolu pour Isolator. Isolator implémente un profileur CLR et, selon nos recherches, une fois qu’un profileur CLR est activé et associé, éditer et continuer est automatiquement désactivé. Je suis désolé de dire que ceci n’est plus considéré comme un bug, mais plutôt comme une limitation de l’isolateur.

Solutions applicables

Voici une liste incomplète et non ordonnée des solutions possibles à essayer si vous souhaitez corriger rapidement et éditer:

  • Assurez-vous que vous êtes en mode débogage
  • Assurez-vous de ne pas lancer de processus en mode mixte
  • Essayez de définir la cible du processeur sur x86 plutôt que sur AnyCPU (sur les machines x64)
  • Décochez la case Optimiser le code pour le mode de débogage dans Propriétés du projet-> Déboguer
  • Désélectionnez Activer les optimisations dans les parameters avancés du compilateur
  • (ASP.NET) Vérifiez la réponse du lecteur de nuit si c’est le cas
  • (ASP.NET) Vérifiez cette réponse (par masortingxugly) si c’est le cas
  • (ASP.NET) Assurez-vous que l’option Modifier et Continuer est activée sur l’onglet Web (vs2010)
  • (ASP.NET) Accédez à Propriétés> Web> Serveurs et vérifiez que l’ option Activer et continuer est activée sous Utiliser Visual Studio Development Server .
  • (ASP.NET WebAPI) Assurez-vous que vous avez arrêté dans la méthode du contrôleur en utilisant un point d’arrêt, avant d’essayer de le modifier.
  • Allez dans Outils> Options> Débogage> Général et assurez-vous que la case Exiger les fichiers source pour qu’ils correspondent exactement à la version d’origine est décochée.
  • Utilisez-vous Microsoft Fakes? Il inhibe Edit & Continue.
  • Tuez toutes les instances * .vshost.exe en sélectionnant End Process Tree dans le Gestionnaire des tâches . VS va régénérer une instance correcte.
  • Supprimer tous les points d’arrêt avec Debug-> Supprimer tous les points d’ arrêt
  • Activer et Continuer existe à la fois dans le menu Outils> Options> Débogage et dans les parameters du projet . Assurez-vous de vérifier les deux endroits. edit & Continue n’est pas pris en charge avec le paramètre Intellitrace étendu.
  • Assurez-vous que les informations de débogage dans Propriétés du projet> Générer> Avancé> Sortie> Informations de débogage sont définies sur Complète
  • Certains plugins peuvent interférer. Vérifiez en désactivant / désinstallant puis réessayez les autres solutions.
  • Si vous ne faites pas assez attention, l’erreur que vous obtenez en essayant de résoudre ce problème peut évoluer vers un autre élément plus facile à diagnostiquer. Par exemple, une méthode contenant une expression lambda ne peut pas supporter l’édition et continuer.
  • Assurez-vous que la variable système COR_ENABLE_PROFILING n’est pas définie sur 1 . Certains profileurs définissent cette fonctionnalité lors de l’installation et la conservent après la désinstallation. Ouvrez une invite de commande et tapez set pour vérifier rapidement que votre système est affecté, si oui, supprimez la variable ou définissez-la sur 0 :

  • Dans Windows 8 et supérieur, recherchez Système (Panneau de configuration).

  • Cliquez sur le lien Paramètres système avancés .
  • Cliquez sur Variables d’environnement .
  • Supprimer COR_ENABLE_PROFILING

  • Soyez conscient des scénarios non pris en charge (comme indiqué dans la question) et des modifications non sockets en charge .

* par ‘vous’, je veux dire le visiteur de la page qui se frappe la tête sur un clavier pour trouver la solution.

N’hésitez pas à éditer cette réponse si vous avez d’autres astuces!

Si vous déboguez une application ASP.NET, accédez à propriétés> Web> Serveurs et vérifiez que l’option “Activer et continuer” est cochée sous Utiliser Visual Studio Development Server.

J’ai eu le même problème. J’ai même réinstallé VS 2008 mais le problème ne s’est pas résolu. Cependant, lorsque j’ai supprimé tous les points d’arrêt, cela a commencé à fonctionner.

 Debug->Delete All Breakpoints 

Je pense que cela se passait parce que j’avais supprimé une page aspx qui avait des points d’arrêt dans son code, puis j’ai créé une autre page du même nom. Cela a probablement confondu le VS 2008.

Couple de choses à vérifier

  • Assurez-vous que votre compilation est définie sur Debug vs. Release
  • Assurez-vous de ne pas lancer de processus en mode mixte
  • Si sur une machine 64 bits Assurez-vous de définir la cible du processeur sur x86 plutôt que AnyCPU

MODIFIER

Je ne crois pas que cela devrait avoir de l’importance, mais assurez-vous que le processus d’hébergement est activé pour la plate-forme cible. Probablement pas aider.

Si cela se répète pour de nouveaux projets, cela pourrait être encore plus subtil. Je voudrais essayer le suivant

  • Sauvegarde HKCU: \ Software \ Wow6432Node \ VisualStudio \ 9.0 (peut-être simplement le renommer)
  • Supprimer la même clé
  • Essayez à nouveau la repro

Si votre problème concerne une application ASP.NET, assurez-vous que vous avez modifié et continuez activé sur l’onglet Web (vs2010). Il y avait également un paramètre distinct pour le débogage ASP.NET dans les versions antérieures.

Cordialement,

Adam.

Aucune des solutions ci-dessus n’a fonctionné pour moi (fonctionnant sur une machine 64x).

Enfin, j’ai cliqué sur 'advanced comstackr settings' et 'advanced comstackr settings' UNCHECKED 'enable optimizations ) et je peux maintenant parcourir le code et éditer pendant le débogage.

J’ai trouvé que bien que sous les propriétés du projet, l’onglet Construire et Déboguer soit défini sur Débogage et que tous les autres parameters soient corrects. Je reçois toujours le message, mais après en avoir creusé d’autres, sélectionnez Configurations Manager … dans deux endroits là aussi. allez figure … combien de lieux différents ont-ils besoin pour régler le debug ?????? bien que vous définissiez Project – Configuration sur Debug puis sous Build – Manager, vous ne modifiez pas le même paramétrage. Project Configuration – semble être à nouveau un problème Microsoft …….

Ce problème est dû au paramètre Intellitrace

Si Intellitrace est activé, vérifiez que seul l’événement Intellitrace est vérifié

Sinon, cela ne permettra pas de modifier et de continuer.

Si vous cliquez sur les options d’Intellitrace, vous verrez les avertissements.

Pour moi, pour une raison que je ne comprends pas, le paramètre “Générer les informations de débogage” dans les “Paramètres avancés du compilateur” était défini sur “pdb uniquement” au lieu de “Complet”.

Par défaut, ce paramètre est toujours défini sur “Complet” mais un poltergeist mystérieux a modifié ce paramètre la nuit dernière. 🙂

PS Je suis en Visual Basic .Net avec Visual Studio 2010

Après le tir m’a aidé à utiliser VS2010:

allez dans Outils, Options, Débogage, Général et assurez-vous que l’option “Exiger que les fichiers source correspondent exactement à la version d’origine” est décochée.

Cela se produit lorsque le débogueur n’a pas atteint un point d’arrêt ou que vous n’avez pas cliqué sur Break All (pause). Cela ne pouvait pas être si simple

J’ai eu ce problème dans Microsoft Visual Studio 2008 et la solution est facile. Lorsque vous exécutez votre projet, veuillez définir le mode “Debug” et non pas “Release”. L’autre solution de personnes peut être utile.

“Editer et continuer”, lorsqu’il est activé, ne vous permettra d’éditer le code que lorsqu’il est en mode pause: par exemple, en suspendant l’exécution par une exception ou en touchant un point d’arrêt.

Cela implique que vous ne pouvez pas éditer le code lorsque l’exécution n’est pas interrompue! En ce qui concerne les projets Web de débogage (ASP.NET), cela est peu intuitif, car vous voudriez souvent apporter des modifications entre les requêtes. A ce moment, le code que votre débogage (probablement) ne fonctionne pas, mais il n’est pas mis en pause non plus!
Pour résoudre ce problème, vous pouvez cliquer sur “Casser tout” (ou appuyer sur Ctrl + Alt + Pause ). Vous pouvez également définir un point d’arrêt quelque part (par exemple dans votre événement Page_Load ), puis recharger la page pour que l’exécution soit suspendue lorsqu’elle atteint le point d’arrêt et que vous pouvez maintenant modifier le code. Même code dans les fichiers .cs .

L’erreur indique qu’une cause possible est: “le code en cours de débogage a été optimisé au moment de la construction ou de l’exécution”. Allez dans Propriétés du projet -> Déboguer et décochez la case Optimiser le code pour le mode Débogage.

Si je crée un nouveau projet, les modifications effectuées pendant le débogage ne fonctionnent pas. Si je crée un nouveau site Web, édite pendant le débogage fonctionne comme prévu.

Certaines choses semblaient aider à utiliser VS2010:

  • allez dans Outils, Options, Débogage, Général et assurez-vous que l’option “Exiger que les fichiers source correspondent exactement à la version d’origine” est décochée.
  • plusieurs instances de .vshost.exe peuvent être laissées par exemple en détachant le débogueur VS d’un processus arrêté. Cela va interférer avec les points d’arrêt et comstack aussi. Utilisez le Gestionnaire des tâches, onglet Processus pour supprimer toutes les instances de .vshost.exe en cliquant avec le bouton droit de la souris sur chaque instance et en sélectionnant Terminer l’arborescence des processus. VS va créer une nouvelle instance.

J’ai retiré un jeu de données de mon projet car je ne l’ai pas utilisé. Après cela, je pourrais modifier le programme lors du débogage.

J’ai fait tous les changements mentionnés dans toutes les autres réponses et aucun n’a fonctionné. Qu’est-ce que j’ai appris? Activer et Continuer existe à la fois dans le menu Outils> Options> Débogage et dans les parameters du projet. Après avoir vérifié les deux, Activer et Continuer a fonctionné pour moi.

Je suis tombé sur cela aujourd’hui – il s’avère que le fait d’avoir des informations de débogage définies sur pdb uniquement (ou aucune, j’imagine) empêchera de modifier et de continuer à travailler.

Assurez-vous que vos informations de débogage sont définies sur “full” en premier!

Propriétés du projet> Générer> Avancé> Sortie> Informations de débogage

Dans mon cas, il suffit de réinitialiser les parameters par défaut du débogueur et de configurer IntelliTrace-> seuls les événements intellytrace aident

intégrer les types d’interopérabilité studio visuel devrait être mis à faux

Je l’ai eu dans un fichier de classe lié. Le rest du projet a permis E & C, mais j’ai eu la même erreur en éditant le fichier lié. La solution consistait à diviser le fichier lié en son propre projet et à référencer le projet.

J’ai rencontré le même problème. Mon problème était que je pouvais modifier un fichier, mais pas un autre (les deux sont dans le même projet). Plus tard, j’ai constaté que le fichier que je ne pouvais pas modifier faisait également partie d’un autre projet. Un autre projet (Test unitaire) n’a pas été chargé et le débogueur intelligent VS affiche l’erreur que l’assembly de ce fichier n’a pas été chargé et que les modifications ne sont pas autorisées. Comme c’est bizarre!

Par conséquent, j’ai dû décharger le projet de test d’unité et continuer le débogage EnC.

J’avais un projet de firebase database dans la solution qui empêchait le projet webforms d’être édité.

J’ai cliqué sur “Décharger” sur le projet de firebase database et tout fonctionne désormais parfaitement.

Pour VS2017, il peut être utile de supprimer le fichier .suo de votre solution, cela a fonctionné pour moi. 🙂

Je faisais face au même problème dans Visual Studio 2005. Ma configuration est de 64 bits. Cela fonctionnait bien sur l’une des solutions VS mais pas sur l’autre. J’ai remarqué que je ne permettais que “Activer l’édition et continuer” pour le projet où je voulais apporter des modifications en mode débogage. Cela a finalement résolu pour moi quand j’ai choisi “Activer et continuer” pour mon projet de démarrage aussi.

Il n’y a eu aucun changement de configuration à l’exception de l’activation et de la poursuite nécessaire.

Semble illogique, mais seul moyen était de désactiver l’édition et continuer à partir des options de VS 2017 … Puis AspNet edit et continue a commencé à fonctionner …

ce qui a fonctionné pour moi était de décocher “Utiliser le mode de compatibilité géré” sous

Outils -> Options -> Débogage

TBN: cocher ou décocher “Exiger le fichier source pour qu’il corresponde exactement à la version originale” ne semble pas influencer l’E & C

J’espère que cela peut aider.

Activer edit et Continue only work run IIS Express. Ne travaillez pas dans l’ISS local ou l’hôte externe.