Visual Studio : “Impossible d’évaluer l’expression”
Dans de très rares cas, lors du debugging il nous est impossible d’évaluer les membres à portée de scope.
Les symptômes :
- Message d’erreur : “Impossible d’évaluer l’expression”
- Multiplication des breakpoints
Ce bug semble provenir d’une nouvelle fonctionnalité introduite par Visual Studio 2013 permettant d’évaluer en direct les méthodes de notre application lors du debugging, pour plus de détails vous pouvez lire ce billet spécialement créé pour l’occasion.
Le bug étant très difficilement reproductible, il est difficile d’approfondir là cause de l’erreur.
La solution consiste à forcer l’utilisation de l’ancienne version du debugger (n’implémentant de ce fait pas les nouvelles fonctionnalités introduites par Visual Studio 2013) :
Il y a plusieurs façons d’y parvenir selon votre cas :
Dans les options
Outil –> Option –> Débogage –> Général et cocher la dernière case : “Utiliser le mode de compatibilité managé”
Modifier le Csproj
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
…
<DebugEngines>{351668CC-8477-4fbf-BFE3-5F1006E4DB1F}</DebugEngines>
…
<FileAlignment>512</FileAlignment>
</PropertyGroup>
Projets EXE
Dans les propriété de l’exécutable, mettre la propriété “Utiliser le moteur managé hérité” à “Oui”
Lors de l’attachement à un processus
Déboguer –> Attacher au processus, sélectionner la version du framework adéquate dans la fenêtre “Sélectionner le type de code”
Ce “patch maison” fonctionne en attendant que ce petit bug sera résolu lors d’une prochaine mise à jour :)
Commentaires