Comment activer l'édition de fichiers en mode débogage de Visual Studio?


144

Existe-t-il un moyen d'activer l'édition de fichiers lors du débogage dans Visual Studio? J'ai décoché la case "Exiger que le fichier source corresponde exactement à la version d'origine". Ça ne fait aucune différence. Je dois arrêter le débogage pour éditer des fichiers. Très ennuyant. J'ai activé Modifier et continuer. Même résultat. J'ai désactivé Modifier et continuer - Même résultat.


Je n'ai pas vu que vous avez modifié votre question. Vous pouvez résoudre ce problème avec une réinstallation rapide.
Secko le

12
@Secko Il n'y a pas de "réinstallation rapide" quand on parle de Visual Studio ...
Zero3

@ Zero3 Il y a eu à mon époque, il y a environ 16 ans, quand je l'utilisais vers (int) 1999 - (int) 2000. Je ne l'ai pas utilisé depuis (longtemps) *.
Secko

Le vrai problème ici est que le paramètre «Modifier et continuer» de Visual Studio ne vous permet pas de modifier et de continuer . C'est plutôt une fonctionnalité étrange qui vous permet de modifier le code, puis de modifier le code en cours d'exécution pour correspondre à votre modification et de déboguer à partir de là. Même si cela était utile, cela fonctionne rarement. Cela aurait dû être appelé quelque chose comme «éditer et recompiler à la volée». Le désactiver vous permet de modifier réellement votre code tout en déboguant le code que vous avez compilé.
MGOwen

Réponses:


234

Pour autant que je sache, vous pouvez décocher la case "Modifier et continuer".

Outils -> Options -> Débogage -> Modifier et continuer> Activer la modification et continuer (décocher)


60
C'était la solution pour moi - je n'ai aucune idée de la raison pour laquelle la vérification de l'ONU "Modifier et continuer" me permettrait de modifier ... semble contre-intuitif. Quoi qu'il en soit, je marquerais ceci comme la réponse.
Sam Schutte

7
Contre-intuitif, mais efficace.
Milne

2
Cela réagit différemment si la couche de gestion est divisée en un projet distinct au sein de la solution. Avant qu'il ne soit divisé, je pouvais éditer des classes pendant le débogage sans problème. Malheureusement, cette solution n'a pas résolu pour moi dans cette situation (j'utilise VS2013)
Radderz

18
Dans Visual Studio 2015, j'ai trouvé ce paramètre au bas de Debugging-> General.
Zero3

13
Si vous essayez de faire cela, mais que "Activer la modification et continuer" est grisé, arrêtez simplement le débogage et revenez dans les options.
Ravvy

19

Expansion sur la bonne réponse de Reed.

En mode débogage, l'édition d'un fichier utilise une fonction appelée Modifier et continuer (généralement abrégé ENC). Cela permet aux utilisateurs de modifier leur programme lors de son exécution dans le débogueur.

Lorsque ENC est activé, les utilisateurs sont autorisés à effectuer un ensemble limité de modifications sur leur fichier. L'action suivante qui continue l'exécution du programme (F10, F5, etc ...) entraînera l'application des modifications au programme en cours d'exécution. Si cela réussit, l'exécution du programme se poursuivra avec le nouveau code appliqué.

Le débogueur n'autorise pas les modifications du fichier si ENC n'est pas activé.

Il y a plusieurs raisons pour lesquelles ENC peut être désactivé sur votre ordinateur

  • Certains profils n'activent pas ENC par défaut et doivent être explicitement activés
  • Il se peut que vous exécutiez un système d'exploitation 64 bits et que votre application .Net soit définie sur "N'importe quel processeur". ENC n'est pas disponible sur 64 bits (limitation CLR). Vous devrez remettre l'application sur x86 pour que ENC fonctionne

8
Que faire si vous ne vous souciez pas de Modifier et continuer et que vous souhaitez simplement coder pendant que l'application est en cours d'exécution afin que vous puissiez voir ce qui doit être fait pendant que vous le faites? C'est absolument irréel VS imposerait cette restriction artificielle. Ce n'est pas comme s'il avait besoin de lire les fichiers source pendant son exécution. Il n'y a aucune raison technique pour laquelle il devrait avoir à verrouiller les fichiers source. Xcode n'a aucun problème à vous permettre de coder pendant que l'application est en cours d'exécution. Les modifications ne s'appliquent tout simplement qu'à la prochaine exécution. N'y a-t-il vraiment aucun moyen de faire cela dans VS?
devios1

1
Si je désactive Modifier et continuer, cela me permettra de modifier les fichiers .cs pendant que l'application est en cours d'exécution, mais il verrouille toujours les fichiers .xaml. Je cherche un moyen de désactiver complètement ce verrouillage absurde.
devios1

7
Cela ne me permettra même pas d' ajouter un fichier au projet pendant que l'application est en cours d'exécution! Je ne plaisante pas, 20 à 30 fois par jour, j'essaye de faire quelque chose et VS l'empêche complètement. Après un bref instant "wtf", je réalise que l'application est en cours de débogage et que je dois arrêter ce que je faisais, tuer l'application, puis la réessayer. Je ne peux pas travailler dans ces conditions et je suis vraiment étonné que les gens ne soient pas en colère à ce sujet. Cela tue vraiment ma productivité et me pousse vers le haut du mur. Il doit y avoir un moyen de résoudre ce problème!
devios1

1
@ devios1 Quelque chose que je fais souvent est de simplement exécuter sans débogage (ctrl + f5), ce qui est OK tant que vous n'avez pas besoin de points d'arrêt ou de quoi que ce soit.
binki

@ devios1 Idem. J'espère que quelqu'un (peut-être moi) trouvera le temps de terminer cette extension. github.com/AndreasFurster/pause-edit-and-continue
Paul

8
  • UN cochez "Activer la modification et continuer" ( Tools -> Options -> Debugging -> Edit and Continue > Enable Edit and Continue)
  • Créez votre application.
  • Exécuter.
  • Arrête ça.
  • RE cochez "Activer la modification et continuer".
  • Créez votre application.
  • Exécuter.
  • Essayez de modifier les fichiers pendant le débogage maintenant.

Cela a fonctionné pour moi. Je pense qu'il peut s'agir d'un bogue ou d'un problème de synchronisation avec Visual Studio 2015.


1
Cher votant défavorable, il est bon de laisser un commentaire sur POURQUOI vous votez contre la réponse.
Francois Botha

Cela n'a pas résolu pour moi, mais la réponse la plus votée ci-dessous l'a fait.
Kairan

6

Vous devez activer Modifier et continuer .


2
De plus, vous devez être à un point d'arrêt ou cliquer sur le bouton pause (Break All).
McAden

@marcc: Et bien d'autres choses, c'est pourquoi j'ai indiqué la documentation. Pour obtenir la liste complète des modifications non prises en charge, consultez la section «Scénarios non pris en charge» à cet emplacement: msdn.microsoft.com/en-us/library/ms164927%28VS.80%29.aspx
Reed Copsey

4
La réponse de Seckos (la mieux notée) a fonctionné pour moi (VS2015) et est exactement le contraire de votre réponse.
alrts le

6

Depuis MSDN

Pour activer / désactiver Modifier et continuer

  • Ouvrez la page des options de débogage (Outils / Options / Débogage). Faire défiler

  • jusqu'à la catégorie Modifier et continuer. Pour activer, sélectionnez Activer la modification

  • et Continuer la case à cocher. Pour désactiver, décochez la case. Remarque. ...

  • Cliquez sur OK.


5

généralement l'édition d'un fichier pendant le débogage est possible lorsque vous avez atteint un point d'arrêt (et seulement alors).

Il y a cependant quelques restrictions: -votre nouveau code doit compiler -vous ne pouvez pas changer le code dans une fonction qui contient des expressions lambda



2

Si vous avez activé Modifier et continuer et que vous utilisez C #, vous ne pouvez modifier un fichier que si le débogueur s'est arrêté via un point d'arrêt ou si vous entrez manuellement dans l'application via "Break All". Vous ne pourrez toujours pas modifier certains fichiers, par ex. xaml dans une application WPF, mais cela devrait résoudre la plupart des problèmes.


1

Si votre source provient d'une DLL décompilée, notez que les décompilateurs peuvent ajouter une instruction IgnoreSymbolStoreSequencePoints à assemblyinfo.cs:

[assembly: Debuggable (DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]

Cette ligne doit être supprimée pour charger le fichier pdb, ce qui permet de modifier et de continuer le travail.


1

La suppression de la coche dans l'option ci-dessous fonctionne pour moi

Outils> Option> Débogage> Général> Activer la modification et continuer

entrez la description de l'image ici

* Remarque: sur le système de certains autres développeurs, l'ajout de cette coche a effectué le truc.


1

J'ai essayé cette façon et cela fonctionne pour moi. Accédez au fichier CSProj ou VbProj -> Choisissez Asp.Net Development Server / IIS Express -> Débogueurs-> Activer la modification et continuer-> Enregistrer et exécuter.

entrez la description de l'image ici

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.