«Les modifications apscopes aux applications 64 bits ne sont pas autorisées» lors du débogage dans Visual Studio 2008

J’utilise Visual Studio 2008, C #. J’essaie d’utiliser edit-and-continue (éditez le code pendant le débogage) et obtenez cette exception:

“Les modifications apscopes aux applications 64 bits ne sont pas autorisées”

Pourquoi donc? Y at-il un travail autour?

    Edit and Continue n’est pas pris en charge sur les applications 64 bits au niveau du CLR. Visual Studio ne peut donc pas non plus l’implémenter.

    Le moyen le plus simple de contourner ce problème consiste à cibler votre application sur des puces x86. Cela le fera fonctionner en mode Wow64 en tant que processus 32 bits et donc être capable de ENC. Vous pouvez le faire en procédant comme suit

    1. Faites un clic droit sur l’application .EXE et choisissez Propriétés
    2. Aller à l’onglet Build
    3. Changez la boîte à options de Platform Target en x86

    entrer la description de l'image ici

    Personnellement, ce que je veux en réalité, ce sont des arrêts et des éditions, pas des éditions et des continuation.

    Donc, je désactive simplement Outils / Options / Débogage / Modifier et Continuer.

    Cela empêche la boîte de dialog embêtante de me harceler à propos d’une caractéristique manquante que je ne voulais pas en premier lieu 🙂

    La fonctionnalité “Modifier et continuer” pour le code 64 bits sera prise en charge sous Visual Studio 2013.

    Plus d’informations ici .

    Comme jcopenha a déclaré qu’il n’y avait pas encore de modification et de poursuite sur x64. La version actuelle du CLR 64 bits ne le prend pas en charge. Cependant, il y a un travail autour.

    Vous pouvez le trouver sur le post Bug Babble .

    Vous devez comstackr votre assembly géré avec un processeur cible de x86. Cela entraînera l’utilisation du CLR 32 bits plutôt que du CLR 64 bits.

    Pour un projet VB, cliquez avec le bouton droit sur le projet et allez dans Propriétés / Comstackr / Options avancées de compilation / CPU cible et réglez-le sur “x86”. Pour un projet C #, cliquez avec le bouton droit sur le projet et accédez à Properites / Build / Platform Target et définissez-le sur “x86”.

    J’espère que cela aide.

    La fonctionnalité d’édition et de continuation n’a pas encore été implémentée dans x64. Je n’ai entendu aucune mise à jour sur le moment où ils prévoient de le faire.

    Voir aussi Pourquoi ne pas modifier et continuer le travail sur le CLR x64?

    J’avais le même message d’erreur dans MS Visual C # Express 2010. C’était amusant, car l’application était définitivement configurée comme un projet x86!

    Au final, il manquait la ligne suivante dans mon fichier .csproj:

     ... x86 ...  

    Je ne sais pas pourquoi il manquait … Je suppose que MS Visual C # Express 2010 n’est pas exempt de bogues;)

    1. Lorsque l’UC cible est définie sur «N’importe quel processeur», elle s’exécutera en tant qu’application 32 bits sur une fenêtre 32 bits et sur une application 64 bits sur une fenêtre 64 bits. Toutefois, Visual Studio n’autorise pas la fonctionnalité de modification et d’application pour les applications 64 bits.

    2. Afin de déboguer “couramment” sur une machine 64 bits, nous pouvons soit:

      a) définissez ‘CPU cible’ sur ‘N’importe quelle CPU’ mais cochez la case ‘Préférer 32 bits’.

      b) ou définissez ‘CPU cible’ sur ‘x86’

    TRÈS important: les deux options nécessitent que la case “Activer les optimisations” soit non vérifiée.