Même si je crée un projet WinForm propre, Edit and Continue ne fonctionne pas et me donne l'erreur:
Les modifications ne sont pas autorisées lorsque le débogueur a été attaché à 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.
J'ai aussi trouvé cet article sur le site Web de MSDN:
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 "Unwind la pile d’appel sur les exceptions non gérées" n’est pas sélectionnée.
Débogage d'une application d'exécution intégrée.
Déboguer une application avec Attach to plutôt que de l'exécuter avec Start dans le menu Debug.
Débogage du code optimisé.
Débogage du code géré 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 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 génération.
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.
J'ai enfin eu à 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 l'installateur (qui a également installé un plugin Visual Studio).
Incidemment, j'avais 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 désactiver TypeMock Isolator (cadre moqueur) enfin aidé ! Edit & Continue fonctionne maintenant !!!
Voici la réponse du support TypeMock:
Après avoir cherché plus loin dans l'édition et continuer à publier et à converser à ce sujet avec Microsoft, nous avons atteint la conclusion, il ne peut ê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é, modifier 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 d'isolateur.
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
:
COR_ENABLE_PROFILING
Soyez conscient de des scénarios non pris en charge (comme indiqué dans la question) et que des 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é 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 qui avait des points de rupture dans son code, puis j'ai créé une autre page du même nom. Cela a probablement dérouté le VS 2008.
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, vous verrez les avertissements.
Quelques choses à vérifier
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 reprenait pour de nouveaux projets, alors ce pourrait être quelque chose d'encore plus subtil. Je voudrais essayer le suivant.
J'ai constaté que même si sous l'onglet Propriétés de construction, les versions et le débogage sont définis sur Débogage et que tous les autres paramètres sont corrects, je reçois quand même le message. 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 donc modifier le même paramètre dans Configuration du projet - cela ressemble à nouveau à un problème Microsoft ...
Aucune des solutions ci-dessus ne fonctionnait pour moi (fonctionnant sur une machine 64x).
Enfin, j'ai cliqué sur 'advanced compiler settings'
etDÉCOCHÉ'enable optimizations
'et je peux maintenant parcourir le code et éditer pendant le débogage.
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.
"Edit and Continue", 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 implique 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 appuyer sur Ctrl+Alt+Break). Vous pouvez également définir un point d'arrêt quelque part (par exemple, dans votre événement Page_Load
), puis recharger la page afin que l'exécution s'interrompt lorsqu'elle atteint le point d'arrêt, et maintenant , vous pouvez éditer le code. Même le code dans les fichiers .cs
.
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" a été défini sur "pdb uniquement" au lieu de "Complet".
Par défaut, ce paramètre est toujours défini sur "Full", mais un mystérieux poltergeist a modifié ce paramètre la nuit dernière. :)
P.S. Je suis dans Visual Basic .Net avec Visual Studio 2010
Suite à la prise de vue m'a aidé à utiliser VS2010:
allez dans Outils, Options, Débogage, Général et assurez-vous que "Les fichiers source doivent correspondre exactement à la version d'origine" est décoché.
Cela se produit lorsque le débogueur n'a pas atteint un point d'arrêt ou que vous n'avez pas appuyé sur Tout casser (pause). Cela ne pourrait pas être aussi simple que possible?
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 "Débogage" et non "Libérer". La solution des autres personnes peut être utile.
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.
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.
Je me suis heurté à cela aujourd'hui - il s'avère qu'avoir Debug Info réglé sur pdb uniquement (ou aucun, j'imagine) empêchera Éditer et Continuer de fonctionner.
Assurez-vous que vos informations de débogage sont réglées sur "complet" en premier!
Propriétés du projet> Construire> Avancé> Sortie> Informations de débogage
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.
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" ne semble pas influencer E & C
J'espère que cela peut aider.
Certaines choses qui ont semblé aider à utiliser VS2010:
J'ai fait tous les changements mentionnés dans chaque réponse 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 paramètres du projet. Après avoir vérifié les deux, Activer et Continuer a fonctionné pour moi.
Je l'ai eu 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.
Cela semble illogique, mais l'unique moyen était de désactiver l'édition et de continuer à partir des options de VS 2017 ... Ensuite, AspNet edit and continue a commencé à fonctionner ...
Dans mon cas, rétablir les paramètres de débogage par défaut et configurer IntelliTrace-> seuls les événements intellitrace aident
Activez les opérations de modification et de poursuite du travail uniquement dans l'exécution IIS Express . Ne travaillez pas dans l'hôte local ISS ou externe.
Pour moi, cela se produisait après avoir atteint un point d'arrêt, effectué quelques modifications, puis continué à parcourir le code, puis enfin appuyé sur F5 ou sur "Continuer" pour arriver à la fin et sortir de mon bloc de code.
Après avoir essayé l'option "supprimer tous les points d'arrêt" (Ctrl + Maj + PrtScn et OK sur l'invite) et effectué une reconstruction complète, il restait une erreur dans mon journal d'erreurs concernant mon DLL pour le chargement de mon projet non effectué. ... "Impossible d'appliquer les modifications, x.DLL non chargé". Après avoir redémarré Visual Studio, tout allait bien à nouveau. Pour moi, c'était aussi simple que cela.
D'autres choses ici ne fonctionnaient pas pour moi, par exemple, l'option "Exiger que les fichiers source correspondent exactement à la version d'origine" a été vérifiée avant et après que tout fonctionne à nouveau correctement, et le ciblage de "Tout processeur" sur ma machine x64 convient également. pas besoin de spécifier x86 ou x64). J'avais activé les options "Activer, puis continuer à modifier" dans les paramètres de l'onglet Outils> Options> Débogage et Propriétés du projet> "Web".
Je faisais face au 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 je seulement activait «Activer, puis continuer à modifier» pour le projet où je voulais apporter des modifications en mode débogage. Cela a finalement été résolu pour moi lorsque j'ai sélectionné "Activer et continuer" pour mon projet de démarrage .
Il n'y a eu aucun changement de configuration, à part l'activation et la poursuite nécessaires.
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 avec douceur.
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 que le débogueur intelligent VS indique l'erreur que Assembly pour ce fichier donné n'a pas été chargé et que les modifications sont interdites. C'est bizarre!
Par conséquent, je devais décharger le projet de test unitaire et poursuivre le débogage EnC.
Pour VS2017, il peut être utile de supprimer le fichier .suo de votre solution. :)
les types d'interopérabilité incorporés visual studio doivent être définis sur false
Avait ce problème dans Rider. J'avais ouvert le fichier .csproj
directement à la place du fichier .sln
. La conséquence est que la configuration d'exécution n'a pas été définie pour déboguer même si j'ai cliqué sur le bouton de débogage. Vous remarquerez qu'il est indiqué <No Configurations>
dans la barre d'outils à côté du bouton de débogage.