Question

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. J'exécute en mode débogage
  5. J'utilise un processeur x64 et Windows XP 32 bits, mais le fait de définir cible de la plate-forme sur x86 plutôt que sur AnyCpu n'aide en rien.
  6. La réparation de l'installation de Visual Studio n'aide pas.

J'ai également trouvé cet article sur MSDN. site web:

  

Scénarios non pris en charge

     

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

     
      
  • Débogage sous Windows 98.

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

  •   
  • Débogage SQL.

  •   
  • Débogage d’un vidage Dr. Watson.

  •   
  • Modification du code après une exception non gérée, lorsque l'option "Déballez la pile d'appels sur les exceptions non gérées" " l'option n'est pas sélectionnée.

  •   
  • Débogage d'une application d'exécution intégrée.

  •   
  • Déboguer une application avec Attacher à plutôt que de l'exécuter avec Démarrer dans le menu Débogage.

  •   
  • Débogage du code optimisé.

  •   
  • Débogage du code managé lorsque la cible est une application 64 bits. Si vous souhaitez utiliser Editer et continuer, vous devez définir la cible sur x86. (Propriétés du projet, onglet Compiler, paramètre du compilateur avancé.).

  •   
  • Le débogage d'une ancienne version de votre code après l'échec de la création d'une nouvelle version en raison d'erreurs de construction.

  •   

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

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

Était-ce utile?

La solution

J'ai finalement eu la possibilité de résoudre le problème: UNINSTALL Gallio

Gallio semble avoir de nombreuses aspérités et il est préférable de ne pas utiliser MbUnit 3.0 mais d'utiliser le framework MbUnit 2.0 mais d'utiliser Gallio Runner, que vous exécutez sans installer le programme d'installation (qui a également installé un plugin Visual Studio). .

Incidemment, le problème persiste même après "désactivation". il plugin Gallio. Seule la désinstallation a résolu le problème.

PS. Edité par nightcoder:
Dans mon cas, désactiver TypeMock Isolator (structure moqueuse) enfin aidé ! Modifier & amp; Continuer fonctionne maintenant !!!

Voici la réponse du support TypeMock:

  

Après avoir approfondi l'édition   et continuer la publication, et converser   à ce sujet avec Microsoft, nous avons atteint   la conclusion, il ne peut pas être résolu   pour isolateur. Isolator implémente un   Profileur CLR, et selon notre   la recherche, une fois un profileur CLR est   activé et attaché, éditer et   continuer est automatiquement désactivé.   Je suis désolé de dire que ce n'est plus   considéré comme un bug, mais plutôt un   limitation de l'isolateur.

Autres conseils

Solutions applicables

Voici une liste incomplète, non ordonnée de solutions possibles à essayer si vous * souhaitez corriger rapidement les modifications et continuer:

  • Assurez-vous d'être 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 ordinateurs x64)
  • Décochez la case Optimiser le code du mode de débogage dans Propriétés du projet - > Debug
  • Désélectionnez Activer les optimisations dans Paramètres de compilation avancés
  • .
  • (ASP.NET) Vérifiez Réponse du codeur de nuit si c'est le cas
  • (ASP.NET) Vérifiez cette réponse (par matrice) si c'est le cas
  • (ASP.NET) Assurez-vous que Modifier et continuer est activé dans l'onglet Web (vs2010)
  • .
  • (ASP.NET) Accédez à Propriétés > Web > Serveurs et assurez-vous que Activer et continuer est coché sous Utiliser le serveur de développement Visual Studio .
  • (ASP.NET WebAPI) Assurez-vous que vous avez arrêté la méthode du contrôleur à l'aide d'un point d'arrêt avant d'essayer de le modifier.
  • Accédez à Outils > Options > Débogage > Général et assurez-vous que Les fichiers source sont exactement identiques à la version d'origine est décochée.
  • Utilisez-vous Microsoft Fakes? Il inhibe Edit & amp; Continuer.
  • Supprimez toutes les instances *. vshost.exe en sélectionnant Arborescence de processus de fin dans le Gestionnaire de tâches . VS régénérera une instance correcte.
  • Supprimez tous les points d'arrêt avec Déboguer - > Supprimer tous les points d'arrêt
  • Activer et continuer existe à la fois dans Outils > Options > Menu de débogage et également dans les Paramètres du projet . Assurez-vous de vérifier les deux endroits. modifier & amp; Continuer n'est pas pris en charge avec le paramètre Intellitrace étendu.
  • Assurez-vous que Informations de débogage se trouvent dans Propriétés du projet > Construire > Avancé > Sortie > Les informations de débogage sont définies sur Complet
  • Certains plugins peuvent interférer. Vérifiez en désactivant / désinstallant puis en essayant à nouveau les autres solutions.
  • Si vous ne faites pas assez attention, l'erreur que vous rencontrez en essayant de résoudre ce problème risque de devenir quelque chose de plus facile à diagnostiquer. Par exemple. Une méthode contenant une expression lambda ne peut pas éditer et continuer.
  • Assurez-vous que la variable système COR_ENABLE_PROFILING n'est pas définie sur 1 . Certains profileurs définissent cette option 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 c'est le cas, supprimez la variable ou définissez-la sur 0 :

    .
    • Sous 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 de scénarios non pris en charge (comme indiqué dans la question) et que modifications non prises en charge .

* par "vous", je veux dire le visiteur de la page qui frappe sa tête avec un clavier pour trouver la solution.

N'hésitez pas à modifier 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 assurez-vous que "Activer et continuer" est cochée sous Utiliser le serveur de développement Visual Studio.

J'ai eu le même problème. J'ai même réinstallé VS 2008 mais le problème ne s'est pas dissipé. 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 dont le code comportait des points d'arrêt, puis j'ai créé une autre page portant le même nom. Cela a probablement dérouté le VS 2008.

Quelques éléments à 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 un ordinateur 64 bits, assurez-vous de définir la cible du processeur sur x86 plutôt que sur AnyCPU

MODIFIER

Je ne crois pas que cela devrait compter, mais assurez-vous que le processus d'hébergement est activé pour la plate-forme cible. Ne sera probablement pas aider.

S'il s'agit de projets nouveaux, cela pourrait être encore plus subtil. Je voudrais essayer ce qui suit.

  • Sauvegardez HKCU: \ Software \ Wow6432Node \ VisualStudio \ 9.0 (peut-être simplement le renommer)
  • Supprimer la même clé
  • Réessayez la repro

Si votre problème concerne une application ASP.NET, assurez-vous que les options de modification et de poursuite sont activées dans l'onglet Web (vs2010). Il existait également un paramètre distinct pour le débogage ASP.NET dans les versions antérieures.

Cordialement,

Adam.

Aucune des solutions ci-dessus ne fonctionnait pour moi (s'exécutant sur une machine 64x).

Enfin, j'ai cliqué sur "paramètres avancés du compilateur" et sur UNCHECKED "activer les optimisations " et je peux maintenant parcourir le code et le modifier en cours de débogage. .

J'ai constaté que même si, dans les propriétés du projet, build & amp; Les onglets de débogage sont définis sur Debug et tous les autres paramètres sont corrects. Je reçois toujours le message. Dans le menu Build, sélectionnez Configurations Manager ... et assurez-vous que Debug est également sélectionné à deux endroits. allez comprendre ... combien d'endroits différents ont-ils besoin pour définir debug ?????? même si vous définissez Project - Configuration sur Debug, puis sous Build - Manager, il n’est pas modifié. Vous devez également modifier le même paramètre. Configuration du projet - cela ressemble à nouveau à un problème Microsoft .......

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

Si Intellitrace est activé, assurez-vous que seul l'événement Intellitrace est coché

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

Si vous cliquez sur les options d'Intellitrace, les avertissements s'afficheront.

La prise de vue m'a aidé à utiliser VS2010:

Allez sur Outils, Options, Débogage, Général et assurez-vous que les fichiers source doivent correspondre exactement à la version d'origine " est décochée.

"Editer et continuer", lorsqu'il est activé, ne vous permettra d'éditer du code qu'en mode pause: par exemple. en faisant suspendre l'exécution par une exception ou en atteignant un point d'arrêt.

Cela signifie que vous ne pouvez pas éditer le code lorsque l'exécution n'est pas en pause! En ce qui concerne les projets Web de débogage (ASP.NET), cela n’est pas très intuitif, car vous voudriez souvent apporter des modifications entre les demandes. À ce stade, le code de votre (probablement) débogage n'est pas en cours d'exécution, mais il n'est pas non plus en pause!
Pour résoudre ce problème, vous pouvez cliquer sur "Tout casser". (ou appuyez sur Ctrl + Alt + Rompre ). 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 s'interrompt lorsqu'elle atteint le point d'arrêt et maintenant vous pouvez modifier le code. Même le code dans les fichiers .cs .

En ce qui me concerne, 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" a été défini sur "pdb uniquement". au lieu de "Complet".

Par défaut, ce paramètre est toujours réglé sur "Complet". mais un mystérieux poltergeist a changé ce paramètre la nuit dernière. :)

P.S. Je suis dans Visual Basic .Net avec Visual Studio 2010

J'ai eu ce problème dans Microsoft Visual Studio 2008 et la solution est simple. lorsque vous exécutez votre projet, définissez-le sous "Débogage". Mode non "Libéré". La solution des autres personnes peut être utile.

Cela se produit lorsque le débogueur n'a pas atteint de point d'arrêt ou que vous n'avez pas atteint Tout casser (pause). Cela ne pourrait pas être aussi simple que possible?

L'erreur indique qu'une cause possible est: "le code en cours de débogage a été optimisé lors de la compilation 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 en cours de débogage ne fonctionnent pas. Si je crée un nouveau site Web, les modifications en cours de débogage fonctionnent comme prévu.

Certaines choses qui semblaient aider à utiliser VS2010:

  • Allez sur Outils, Options, Débogage, Général et assurez-vous que les fichiers source doivent correspondre exactement à la version d'origine " est décochée.
  • plusieurs instances .vshost.exe peuvent être laissées, par exemple. détacher le débogueur VS d'un processus arrêté. Cela va interférer avec les points d'arrêt et compiler aussi bien. Utilisez le Gestionnaire de tâches, onglet Processus pour tuer 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 de processus. VS créera une nouvelle instance.

J'ai supprimé 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 Outils > Options > Menu de débogage et également dans les paramètres du projet. Après avoir vérifié les deux, Activer et Continuer a fonctionné pour moi.

Je me suis heurté à cela aujourd'hui. Il est avéré que le fait de régler les informations de débogage sur pdb uniquement (ou aucune, j'imagine) empêchera Éditer et continuer de fonctionner.

Assurez-vous que vos informations de débogage sont définies sur "complet". d'abord!

Propriétés du projet > Construire > Avancé > Sortie > Informations de débogage

ce qui a fonctionné pour moi a été de décocher "Utiliser le mode de compatibilité gérée". sous

  

Outils - > Options - > Débogage

TBN: cocher ou décocher " Exiger que le fichier source corresponde exactement à la version d'origine " semble ne pas influencer le e & amp; C

J'espère que cela peut vous aider.

Activez les opérations de modification et de poursuite uniquement, exécutez IIS Express. Ne travaillez pas dans ISS local ou un hôte externe.

Dans mon cas, il suffit de rétablir les paramètres par défaut du débogueur et de configurer IntelliTrace- > seuls les événements intellitrace peuvent vous aider

Intégrer les types d'interopérabilité Visual Studio doit être défini sur false

Cela m'est arrivé dans un fichier de classe lié. Le reste du projet a permis à E & C, mais j'ai eu la même erreur lors de l'édition du fichier lié. La solution consistait à décomposer le fichier lié dans 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 découvert que le fichier que je ne pouvais pas modifier faisait également partie d'un autre projet. Le fait qu'un autre projet (Test d'unité) n'a pas été chargé et le débogueur VS intelligent indique l'erreur que l'assembly de ce fichier donné n'a pas été chargé et que les modifications ne sont pas autorisées. C'est bizarre!

J'ai donc dû décharger le projet de test unitaire et poursuivre le débogage EnC.

J'avais un projet de base de données dans la solution qui empêchait la modification du projet de formulaires Web.

J'ai cliqué sur "Décharger". sur le projet de base de données et tout fonctionne maintenant doucement.

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

Je rencontrais le même problème dans Visual Studio 2005. Ma configuration est 64 bits. Cela fonctionnait bien sur l'une des solutions VS mais pas sur l'autre. J'ai remarqué que uniquement était activé, puis activé, puis activé, puis activé, et " pour le projet où je voulais apporter des modifications en mode débogage. Ce problème a finalement été résolu pour moi lorsque j'ai sélectionné l'option "Activer et continuer". pour mon projet de démarrage également.

Il n'y a pas eu de changement de configuration, à part l'activation et la poursuite nécessaires.

Cela semble illogique, mais le seul moyen de désactiver l’édition et de continuer à partir des options de VS 2017 ... Ensuite, l’édition AspNet et la suite ont commencé à fonctionner ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top