« Modifications apportées aux applications 64 bits ne sont pas autorisés » lors du débogage dans Visual Studio 2008

StackOverflow https://stackoverflow.com/questions/1498464

Question

J'utilise Visual Studio 2008, C #. J'essaie d'utiliser et modifier-continue (modifier le code en cours de débogage), et obtenir cette exception:

"Modifications apportées aux applications 64 bits ne sont pas autorisés"

Pourquoi? Y at-il une solution de contournement?

Était-ce utile?

La solution

Modifier et continuer ne sont pas pris en charge sur les applications 64 bits au niveau CLR donc il n'y a aucun moyen pour Visual Studio pour le mettre en œuvre soit.

La meilleure façon de contourner ce problème est de cibler votre application à des puces x86. Cela entraînera à fonctionner en mode Wow64 comme un processus 32 bits et donc pouvoir 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 Construire
  3. Modifier la zone de liste déroulante cible de la plate-forme x86 à

entrer image description ici

Autres conseils

Personnellement, ce que je veux vraiment est d'arrêter et de modification non-éditer et continuer.

J'il suffit de désactiver Outils / Options / Débogage / Modifier et continuer.

Cela empêche cette boîte de dialogue satanés me tracasser au sujet d'un élément manquant, je ne voulais pas en premier lieu: -)

Le "Modifier et continuer" fonctionnalité pour le code 64 bits sera prise en charge par Visual Studio 2013.

Plus d'informations ici .

Comme jcopenha dit qu'il n'y a pas modifier-et continuer encore x64. La version actuelle du CLR 64bit ne supporte pas. Cependant, il y a un travail autour.

Vous pouvez trouver sur post Bug Babble .

  

Vous devez compiler votre assembly géré avec une CPU cible x86. Cela entraînera le 32 bit CLR à utiliser plutôt que le CLR 64 bits.

     

Pour un projet VB, faites un clic droit sur le projet et aller à Propriétés / Compile / Options avancées de compilation / CPU cible et réglez-le sur « x86 ».   Pour un projet C #, faites un clic droit sur le projet et aller à Properites / Construire / Target Plate-forme et le mettre à « x86 ».

it helps.

Le montage-et continuer fonction n'a tout simplement pas été encore mis en œuvre en x64. Je ne l'ai pas entendu les mises à jour sur le moment où ils ont l'intention de le faire encore.

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

J'ai eu le même message d'erreur dans MS Visual C # Express 2010. Il était drôle que, parce que la demande a été définitivement configuré en tant que projet x86!

En fin de compte, il a été la ligne suivante manquante dans mon dossier .csproj:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'MY_CONFIG|x86'">
    ...
    <PlatformTarget>x86</PlatformTarget>
    ...
</PropertyGroup>

Je ne sais pas pourquoi il avait disparu ... Je suppose que MS Visual C # Express 2010 est pas moins de bugs;)

  1. lorsque le processeur cible est réglé sur « Any CPU », il fonctionnera comme une application 32 bits sur un ordinateur Windows 32 bits, et l'application 64 bits sur un ordinateur Windows 64 bits. Cependant le studio visuel ne permet pas 'modifier-et continuer' fonctionnalité pour l'application 64 bits.

  2. Pour debug 'couramment' sur la machine 64 bits, nous pouvons soit:

    a) définir 'CPU cible' à 'Any CPU', mais cochez la case «Préférez 32bit.

    b) ou, ensemble 'CPU Target' à 'x 86'

Très important:. À la fois option nécessite l'option «Activer les optimisations de la case pour être décochée

Malheureusement, Modifier et continuer n'est pas pris en charge sur 64 bits. En fait, si vous essayez d'utiliser Modifier et continuer lors du débogage d'une application 64 bits, vous obtenez le message d'erreur suivant: « Modifications apportées aux applications 64 bits ne sont pas autorisés » De nombreux utilisateurs ne peuvent pas être au courant que par défaut, lorsque vous créez un projet C # ou VB dans Visual Studio 2008, la « plate-forme » pour le projet est réglé sur « Any CPU ». Cela signifie que si vous exécutez votre application sur un système d'exploitation 32 bits, votre application fonctionnera comme un processus 32 bits et même, si vous exécutez votre application sur un système d'exploitation 64 bits, l'application sera 64 bits. La conséquence de « Any CPU » est que lorsque vous essayez de déboguer votre application sur un système d'exploitation 64 bits, vous ne pourrez pas utiliser la fonction Modifier et continuer.

Cependant, il existe une solution. Au cours du développement, vous pouvez définir la plate-forme pour votre projet à 32 bits ce qui signifie que votre application fonctionnera comme un processus 32 bits, même sur un système d'exploitation 64 bits. Ceci est connu comme WOW64 ou « Windows sur Windows », qui signifie que vous pouvez exécuter une application 32 bits sur un système d'exploitation 64 bits.

Alors, comment définissez-vous la plate-forme pour votre projet à 32 bits? Eh bien, vous devez créer une plate-forme 32 bits à l'aide du Gestionnaire de configuration Visual Studio. Voici une courte visite virtuelle.

D'abord, ouvrez la boîte de dialogue "Configuration Manager" de Build -> Configuration Manager. La boîte de dialogue Configuration Manager est illustré ci-dessous.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top