web-dev-qa-db-fra.com

Voulez-vous continuer et exécuter la dernière version réussie?

Vous êtes dans Visual Studio ... vous appuyez sur F5 (Exécuter) et vous êtes accueilli par cette boîte de dialogue:

Il y avait des erreurs de construction. Voulez-vous continuer et exécuter la dernière version réussie?

Merveilleux.

Je suis sûr qu'il est utile d'exécuter la dernière version réussie dans certains cas. Cependant, j'aineverdélibérément répondu oui à cette question. Oh, bien sûr, j'ai cliqué sur Oui beaucoup de fois et j'attendais avec frustration la première occasion de réparer ma gaffe, mais rien de plus.

Alors, avez-vous déjà trouvé cette fonctionnalité utile? Et si oui, dans quelles circonstances est-il devenu utile pour vous de pouvoir exécuter la dernière version réussie de votre application?

À quelle fréquence cliquez-vous accidentellement sur Oui et vous donnez-vous un coup de pied en attendant le démarrage de l'application?

36
joshuapoehls

Dans VS2008, vous pouvez définir les options suivantes pour modifier le comportement (vous ne savez pas s'il existe des options similaires dans d'autres versions de Visual Studio):

Projects and Solutions/Build and Run

    - On Run, when projects are out of date:

          Always build
          Never build
          Prompt to build <== default setting

    - On Run, when build or deployment errors occur:

          Launch old version
          Do not launch
          Prompt to launch <== default setting

Définissez les options ci-dessus sur "Toujours créer" et "Ne pas lancer" et vous obtenez ce que je considère comme un comportement plus utile. Bien que, parfois, lorsque j'essaye de lancer le débogueur et qu'il y ait une erreur de construction, il me faut quelques secondes pour comprendre pourquoi je n'arrive pas au point de rupture que je pensais frapper (ça pourrait être bien d'avoir un genre de 'grille-pain type de message pour me sortir de ma stupeur).

40
Michael Burr

Cela peut être utile lorsque vous déboguez une application Web et que l'une des pages ne se compile pas, car un autre développeur a enregistré une version incorrecte, ou vous ne pouvez pas extraire le dernier code pour une raison quelconque, mais vous savez que vous n'allez pas cliquer. cette page. Je le fais tout le temps.

6
cdonner

Ce comportement peut être défini sous Outils-> Options-> Projets et solutions-> Construire et exécuter -> À l'exécution, des erreurs de génération ou de déploiement se produisent

ici, vous pouvez sélectionner: - Lancer l'ancienne version - Ne pas lancer - Demander au lancement

5
Frank

C'est également utile pour les applications Web, car cela forcera les serveurs Cassini à démarrer. Vous en aurez besoin si vous travaillez sur un projet de la solution qui ne sera pas compilé et que vous devez actualiser les services Web d'un autre projet. 

0
kemiller2002

Lorsque vous utilisez VS 2008 Express, il existe une boîte pour ne plus jamais afficher cette boîte de dialogue. Juste essayé et cela enlèvera la boîte de dialogue, ne laissant qu'un message d'échec de la construction dans la partie inférieure gauche de l'écran.

Quant à combien de fois puis-je le frapper, assez souvent. Frustrant que parfois, j'ai changé le code complet tout en testant des choses et obtiendra quelque chose de complètement différent de la tâche à accomplir. Je ne sais pas quand Microsoft a pensé que cela serait utile.

0
Terry

Intéressant. Je n'ai en fait jamais vu cette boîte de dialogue - je sais qu'il existe une option permettant d'activer/de désactiver l'exécution de la précédente version réussie; Vous pouvez envisager de le désactiver si vous ne l'utilisez pas.

Cela peut cependant être utile si vous souhaitez vous rappeler le bogue sur lequel vous travailliez. Toutes les choses ne peuvent pas être corrigées dans edit-and-continue, et vous pourriez avoir besoin d'un jog de mémoire.

0
lc.

Cela fonctionne sur la préférence de la sélection des dll appropriées au moment de l'exécution. Les fichiers exécutables ne sont pas générés en cas d'erreur de construction. Le compilateur recherche donc le fichier exécutable existant, qui est évidemment le dernier compilé correctement.

0
Kaushal