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.

tom7
la source
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)

Secko
la source
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
JaredPar
la source
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.

François Botha
la source
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 .

Reed Copsey
la source
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.

Dilaksha A
la source
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

Johannes Rudolph
la source
4

Pour moi, ce lien Désactiver IntelliTrace a fonctionné.
Aller à

Outils> Options> IntelliTrace> (décocher) Activer IntelliTrace

Ou Déboguer> Options> IntelliTrace> (décocher) Activer IntelliTrace

entrez la description de l'image ici

Muhammad Ashikuzzaman
la source
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.

Mark Vicuna
la source
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.

Turbo
la source
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.

Pranav Labhe
la source
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

Prosun Chakraborty
la source