"Le point d'arrêt ne sera pas actuellement être frappé. Le code source est différent de la version originale."Qu'est-ce que cela signifie?

lors du débogage dans Visual Studio, parfois j'ajoute un point de rupture mais c'est creux et VS dit "le point de rupture ne sera pas actuellement frappé. Le code source est différent de la version originale."Évidemment, cela m'empêche d'être en mesure de débogage.

que signifie ce message? Quelle version originale? Si je viens d'ouvrir la solution et que je n'ai apporté aucune modification au code, comment peut-il y avoir une "version originale"?

441
demandé sur David 2010-03-18 13:01:22
la source

30 ответов

comme il est dit, le"code source est différent de la version originale".

faites un clic droit sur le dossier du projet à l'intérieur de l'Explorateur de solutions et choisissez Clean . Construisez une nouvelle version du projet et le point de rupture fonctionnera à nouveau!

233
répondu Veedrac 2014-06-11 05:29:06
la source

si vous n'avez pas vérifié le projet DLL dans la configuration Debug build , votre nouveau code ne sera jamais construit!

aller à Build --> Configuration Manager ... (dans VS2010) et vérifier si le projet avec le code que vous essayez de déboguer est vérifié pour la configuration de construction actuelle.

116
répondu Oliver 2014-06-11 05:26:57
la source

pour moi c'était en travaillant sur un projet de site web. Après avoir nettoyé ces dossiers temp j'ai récupéré les erreurs de compilateur appropriées:

  • C:\Documents and Settings\%username%\AppData\Local\Temp\Temporary ASP.NET Files
  • C:\windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

j'ai finalement résolu le problème quand j'ai découvert qu'un fichier de classe que j'avais déplacé intentionnellement dans un sous-dossier, est réapparu d'une façon ou d'une autre dans le dossier racine. VS utilisait celle-là pendant que je modifiais l'autre.

39
répondu AnthonyVO 2014-06-11 21:04:06
la source

avez-vous déjà fait ça?

voulez-vous continuer et exécuter la dernière génération réussie?

si vous cochez la case et que vous appuyez sur" Oui", vous obtiendrez la dernière compilation réussie, même si votre projet n'est pas compilé. Cela signifie que chaque fois que vous définissez un point d'arrêt, vous obtiendrez cette erreur.

essayer de changer cette valeur:

  • outils
    • Options
      • projets et Solutions
        • Build and Run
          • Sur la course, lors de la construction ou de déploiement des erreurs se produisent: Ne pas Lancer
33
répondu Codesleuth 2017-05-23 14:47:15
la source

passer à

  • outils
    • Options
      • débogage
        • général

Décocher la case les fichiers source pour correspondre exactement à la version originale

25
répondu Rachmad 2014-06-11 20:51:26
la source

sélectionner Debug dans Solutions Configurations , au lieu de Release

screenshot of menu

25
répondu AdiKonstantin 2014-06-11 20:51:51
la source

fermer Visual Studio et rouvrir la solution peut résoudre le problème, c'est-à-dire que c'est un bug dans L'IDE lui-même (j'exécute VS2010).

si vous avez plus d'une instance de Visual Studio en cours d'exécution, vous n'avez qu'à fermer l'instance qui exécute la solution avec le problème.

24
répondu Luke Whyte 2014-06-11 21:12:13
la source

faites attention à la fenêtre" Output " dans VS. Il vous indiquera quels assemblages sont chargés et quand. Vous pouvez voir qu'une version plus ancienne de votre assemblage quelque part dans le dossier est en train d'être chargée.

par exemple, si vous avez plusieurs assemblages et que vous essayez actuellement de casser l'un des assemblages de support, le CLR s'occupera de la résolution de l'assemblage, qui peut charger un autre fichier d'assemblage que celui auquel vous avez fait référence dans le projet.

22
répondu Tormod 2014-06-11 21:01:44
la source

une nouvelle façon d'obtenir ce problème est apparu à partir de Visual Studio 2017 15.3.1 à 15.3.5. Si vous utilisez EditorConfig , l'option charset=utf8 provoque ces symptômes. L'équipe de VS a reproduit ceci et dit qu'elle travaille dessus .

donc un correctif est de commenter votre ligne charset=utf8 dans le .fichier editorconfig.

Edit: ceci doit être corrigé à partir de VS 15.5.

19
répondu John Hatton 2018-01-12 19:23:51
la source

cela se produit souvent aussi si vous utilisez des références de fichier binaires (au lieu de références de projet au code dans votre projet), et le binaire compilé que vous référencez tombe hors de la synchronisation avec le code source correspondant sur votre machine. Cela peut se produire parce que vous avez téléchargé une nouvelle version du binaire à partir du contrôle source sans le nouveau code source qui allait avec, ou vous avez quelques versions du binaire sur votre machine et font référence à une ancienne copie, etc. Si ce est en effet le problème, c'est une bonne raison pour utiliser des références de projet autant qu'il pratique.

8
répondu Stijn 2014-06-12 19:48:02
la source

il y a un réglage presque imperceptible qui a réglé ce problème pour moi. S'il y a un fichier source particulier dans lequel le point de rupture ne frappe pas, il pourrait être listé dans

  • L'Explorateur De Solutions
    • droit-cliquez sur la Solution
      • propriétés
        • Propriétés Communes
          • Débogage Des Fichiers Source
            • "ne cherchez pas ces fichiers source".

pour une raison inconnue de moi, VS 2013 a décidé d'y placer un fichier source, et par la suite, Je ne pouvais plus frapper breakpoint dans ce fichier. Ceci peut être le coupable pour "le code source est différent de la version originale".

7
répondu JBSnorro 2015-04-03 16:08:36
la source

cela peut se produire lorsque l'heure du système change pendant le débogage ou entre les sessions de débogage, que ce soit par programmation, manuellement ou par un programme externe.

5
répondu Tomi 2014-06-11 21:17:43
la source

Pour moi, aucun des articles résolu le problème. Je viens d'ajouter une nouvelle ligne de code à l'intérieur de cette fonction, quelque chose comme:

int a=0;

en ajoutant que, je suppose que j'ai déclenché visual studio pour ajouter cette fonction à la version originale

5
répondu Mehrdad Babaki 2017-12-06 03:02:07
la source

Vous pouvez obtenir ce message lorsque vous utilisez un activateur et de l'assemblée, vous définissez le point d'arrêt en n'a pas encore été chargé.

le point de rupture se résoudra une fois que l'activateur chargera l'assemblage (en supposant que les symboles assembly et debug soient à jour). Un bon endroit pour regarder est la fenêtre modules dans le menu de débogage. Là, vous devriez chercher l'assemblée à laquelle votre dossier appartient aussi. Vérifiez d'abord que l'ensemble est chargé. Alors, où est-il chargé? Ensuite, le fichier de symboles chargé. Encore une fois, d'où le fichier de symboles est-il chargé? Enfin vérifier les versions des deux.

4
répondu Stijn 2014-06-11 20:56:15
la source

j'ai rencontré cette. Les conditions qui ont causé mon problème:

  • je suis tourne à plein IIS7 instance locale
  • Je véridique mon logiciel dans des projets séparés

j'avais causé cela en ouvrant une version précédente (VS invité à demander si je voulais pointer vers cette instance dans IIS debugging, j'ai répondu 'Oui'), puis en ouvrant la version actuelle (répondre à nouveau à l'invite IIS avec un 'Oui'), puis essayez de déboguer dans la version précédente.

pour résoudre, j'ai simplement fermé et réouvert la version précédente et prévue, l'affirmant une fois de plus comme la source de débogage.

4
répondu baker.nole 2014-06-11 21:16:15
la source

cela se produit aussi lors du débogage d'un projet C++ qui charge un module qui a été implémenté avec un certain langage CRL (Managed C++, C# etc). Dans cette situation, le message d'erreur est effectivement trompeur.

la solution est de mettre la propriété de configuration Common language runtime (CLR) support au projet de démarrage et de recompiler cette propriété.

3
répondu Stijn 2014-06-11 21:14:59
la source

Le problème est que vos informations de débogage n'est pas synchronisé avec votre assemblée. La solution est simple:

  1. allez dans votre dossier bin
  2. supprimer le .fichiers de l'APB
  3. reconstruire

Devrait faire l'affaire!

(la chose étrange est, une reconstruction sans jeter l' .les fichiers pdb ne fonctionnent pas toujours. Je peux voir la date modifiée être mis à jour, mais toujours quelque part dans le chaîne (VS2013 débogueur, IIS, assembly cache) ce changement n'est pas détecté)

3
répondu FrankyHollywood 2015-03-21 23:45:52
la source

pour moi la solution était cachée dans le Advanced Build Settings des propriétés du projet: enter image description here

pour une raison inconnue, il a été réglé à none : le réglage à full a causé les points de rupture à frapper.

pour accéder à ce dialogue, ouvrez les propriétés du projet, puis allez à Build , puis sélectionnez le bouton Advanced... au bas de la page.

3
répondu riqitang 2017-10-26 19:37:18
la source

aller à:

Outils > Options > Débogage > Général > unchecked " source fichiers pour correspondre exactement à la version originale "

3
répondu Long Field 2018-06-04 15:00:20
la source

dans mon cas, je m'attachais à un processus en cours dans VS 2012. Lors de la fixation, vous avez la possibilité de déboguer dans les différents modes (en natif, script, silverlight, géré 2.0, géré 4.0, etc). Par défaut, le débogueur sélectionne le mode automatiquement. Cependant Automatique ne fait pas toujours le bon choix. Si votre processus contient plusieurs types de code, assurez-vous que le débogueur utilise le bon.

2
répondu silent tone 2013-08-19 18:50:52
la source

dans mon cas, je développais une application Windows CE, qui a été testé contre un émulateur. Le problème était que l'exécutable n'était pas déployé sur l'émulateur, donc le .l'APB (dans le domaine du développement) n'était pas en phase avec le .exe (dans l'émulateur), parce que le nouveau .exe n'a jamais été copié à l'émulateur. J'ai dû supprimer le .exe dans l'émulateur pour forcer un nouveau déploiement. Puis il a travaillé.

2
répondu Julen 2013-11-21 18:30:46
la source

essayez de désactiver et de remettre le point de rupture en cours d'exécution en mode de débogage au lieu de le faire avant de lancer le mode de débogage.

2
répondu mikeTheLiar 2014-06-11 21:05:54
la source

ce qui a fonctionné pour moi était de changer la plate-forme de solution de x86 à N'importe quel CPU. Après avoir changé en tout, j'ai mis une adresse d'arrêt, j'ai lancé le site web, j'ai ouvert la page, j'ai cliqué sur le bouton et ça s'est arrêté. J'ai fermé le site, reconvertie en x86 et effectué la même séquence avec succès.

2
répondu John 2014-06-11 21:11:22
la source

sous Windows 7, Visual Studio Express 2010, si vous avez activé l'option utiliser le mode de compatibilité Pour Windows XP SP3 , cette erreur peut se produire.

j'ai décoché l'option et ça a fonctionné à nouveau parfaitement. Faites un clic droit sur le raccourci vers VS ou l'exécutable, sélectionnez propriétés et ensuite compatibilité .

2
répondu Pete 2014-06-11 21:20:28
la source

j'ai d'abord essayé depuis la ligne de commande;

supprimer les fichiers temp de la ligne de commande a fonctionné.

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET fichiers > RD / S root

Quand je désactiver "Activer uniquement Mon Code" option dans Outils -> Options -> Débogage -> Général

Le problème résolu pour moi. C'est un WCF application, essayait de déboguer une page ashx. http://blogs.msdn.com/b/zainnab/archive/2010/10/25/understanding-just-my-code.aspx

2
répondu Teoman shipahi 2014-10-17 23:24:50
la source

si vous avez plus d'un projet dans votre solution , alors assurez-vous que le projet correct est défini comme le StartUp Project . Pour définir un projet particulier comme Projet de Démarrage de votre solution, cliquez-Droit sur le projet, choisissez Set As StartUp Project .

après avoir réglé mon projet de démarrage correctement, le point de rupture désiré a été atteint par le thread.

2
répondu displayName 2015-03-30 21:19:59
la source

j'en ai fait l'expérience dans une construction de 32bits sur vs2017.

Exactement aucune des solutions n'a fonctionné pour moi. J'ai redémarré, j'ai effacé les fichiers IDE, nettoyé la solution construite, tiré de Git repo et reconstruit la solution en vain.

je retirais une dépendance de 64 bits de nuget et dès que j'ai utilisé l'assemblée, les sources n'étaient plus intégrées dans l'exécutable final et au lieu de cela les sources mises en cache IDE étaient en cours de construction.

j'ai enlevé le nuget configuration, suppression de l'assembly référencé téléchargé la source, construit log4net manuellement, signé, a ajouté dans un dossier de mon projet, ajout d'une référence à elle, et j'ai pu à nouveau débogage.

C'était une douleur, j'espère qu'il se lève dans la liste des réponses pour tout voir.

Edit: il n'y a pas eu d'erreur lors de la compilation malgré le fait que l'option "Invite sur erreur de compilation" soit activée dans les paramètres IDE.

2
répondu nurettin 2017-10-21 23:47:28
la source

si votre processus de débogage contient plusieurs appdomains et que l'assemblage est chargé dans les deux, et que l'un d'eux charge une vieille copie (généralement quelque chose chargé dynamiquement comme un plugin), le point de rupture peut apparaître solide, mais le fil qui devrait atteindre le point de rupture est dans l'appdomaine avec l'ancien assemblage, et ne frappe jamais. Vous pouvez voir quels assemblages sont chargés et leur chemin dans la fenêtre du module.

1
répondu silent tone 2014-09-17 03:29:59
la source

vérifiez si vous avez plus d'un fichier avec ce nom dans la solution.

j'avais ceci sur un projet que j'ai repris à quelqu'un d'autre. La liste des points de rupture était pleine de numéros de ligne dans le contrôleur.cs, certains actifs et d'autres non. J'ai trouvé cette question, et essayé quelques options, mais quand j'ai double-cliqué sur les points de rupture, ils m'ont emmené à différents projets dans la solution. Parce que les fichiers ont été appelés les mêmes, ils semblent être les mêmes, mais ils Je ne le suis pas. La réponse est bien sûr d'ignorer l'avertissement, car ils deviendront actifs si vous chargez cet autre fichier.

1
répondu mj2008 2015-05-12 17:37:34
la source

c'est arrivé d'être sur Visual Studio 2017 après que j'ai ajouté des fichiers existants au projet. Cela a fonctionné pour moi:

  1. fermer la solution
  2. passer à SolutionFolder\.vs\SolutionName\v15\sqlite3 et supprimer storage.ide
  3. ouvrir à nouveau la solution
1
répondu laurian 2017-09-28 15:17:49
la source

Autres questions sur .net visual-studio debugging