web-dev-qa-db-fra.com

Fenêtre immédiate, "L'expression ne peut pas être évaluée ...."

Lorsque j'essaie d'évaluer une expression dans la fenêtre Immediate au moment de la conception, le message d'erreur suivant s'affiche:

L'expression ne peut pas être évaluée en mode conception.

Si je compile un projet ASP.NET et que je tente de l'exécuter en mode débogage, une autre erreur se produit:

L'expression ne peut pas être évaluée en mode exécution.

Pourquoi ai-je ces erreurs? J'ai utilisé Immediate Window dans le passé et cela fonctionnait bien, même en mode conception.

38
Tomas

En supposant que l'opérateur > ne manque pas dans la fenêtre Immediate, il pourrait y avoir des problèmes si vous essayez d'évaluer une expression au moment du design dans une solution multi-projet ou même un projet Web.

Selon MSDN :

Si vous essayez d’évaluer une fonction dans un projet qui n’est pas le projet de démarrage pour la solution et vous recevez une erreur, essayez en sélectionnant le projet dans l'Explorateur de solutions et en tentant l'évaluation encore.

Également:

Vous ne pouvez pas utiliser l'évaluation de l'expression lors de la conception dans les types de projet qui nécessite le démarrage d'un environnement d'exécution, y compris Visual Studio Outils pour les projets Office, les projets Web, les projets Smart Device et Projets SQL.

27
bflow1

Il est à noter que le comportement de la fenêtre Immediate varie en fonction de l'édition de Visual Studio que vous utilisez. Si j'essaie d'évaluer une expression simple telle que ? 2+2 dans Visual Studio 2013 Express pour Web, je reçois le message d'erreur "L'expression ne peut pas être évaluée en mode conception"; Cependant, dans Visual Studio 2013 Professional, l'expression est évaluée à 4 sans être obligé d'être en mode débogage.

6
pvdjay

Comme northben l'a souligné dans un commentaire , si vous essayez d'accéder à des propriétés dans la fenêtre immédiate alors que votre application n'est pas en cours d'exécution, vous pouvez obtenir:

L'expression ne peut pas être évaluée en mode conception.

Donc:

  1. Définissez un point d'arrêt dans le fichier que votre application exécutera;
  2. Attendez que l'exécution de l'application soit arrêtée (par le point d'arrêt ou une exception) ou déclenchez-la manuellement (par exemple: allez à l'URL);
  3. Tapez dans la fenêtre Immédiat la propriété à laquelle vous souhaitez accéder (par exemple, GlobalConfiguration.Configuration). Désormais, cela devrait vous fournir les résultats appropriés si cette propriété existe dans ce contexte. S'il n'existe pas, vous obtiendrez alors:

    L'expression ne peut pas être évaluée en mode exécution.

C'est aussi simple que de vous assurer que vous accédez aux propriétés dans le bon contexte.

4
CPHPython

Dans mon cas, j'ai reçu cette erreur lors de l'utilisation d'Excel Interop après avoir activé le débogage native. Ensuite, en mode débogage, j'ai essayé ceci:

?xlworkbook.sheets(1).name

Le processus a été suspendu, je n’ai reçu aucune réponse, et après tout, par exemple, ?2+2 m'a donné cette erreur:

L'expression ne peut pas être évaluée en mode d'exécution

Pour pouvoir à nouveau utiliser les fonctionnalités de débogage, je devais désactiver le débogage natif.

0
ZygD