Question

On m'a dit qu'il existe une variable d'environnement que vous pouvez définir pour forcer les applications .NET à s'exécuter en tant qu'applications 32 bits sur les versions x64 de Windows. Savez-vous ce que c'est ou connaissez-vous une référence? Je crains que mon google-fu ne m'ait pas réussi aujourd'hui (ou qu'il n'existe pas).

J'utilise Resolver One (une feuille de calcul .NET) et souhaite accéder à certaines fonctionnalités uniquement en 32 bits sans modifier l'exécutable. Si je peux configurer cela à partir d'une variable d'environnement, je peux accéder à la fonctionnalité 32 bits si nécessaire, mais aussi exécuter une application 64 bits si nécessaire.

(NOTE: effectivement, je veux pouvoir changer si une application fonctionne en 32 bits ou en 64 bits au moment du lancement au lieu de la forcer au moment de la compilation.)

Merci

Était-ce utile?

La solution

J'ai reçu une réponse de Dino Veihland (développeur Microsoft IronPython). Je n'ai pas encore eu le temps de le tester.

C'est COMPLUS_ENABLE_64BIT. Je pense que le mettre à 0 désactive 64 bits.

Vous devriez pouvoir le définir en tant que variable d'env ou ajouter une valeur à HKLM \ Software \ Microsoft \ .NETFramework avec le nom "Enable_64Bit", le type REG_DWORD et la valeur 0 pour le définir globalement (c'est la tous les COMPlus_ * vars fonctionnent). Celui-ci est peut-être suffisamment spécial (il doit être exécuté avant la création du processus) pour pouvoir être défini dans la clé reg, mais je ne suis pas tout à fait sûr.

Autres conseils

Que diriez-vous de ce lien

Ce n'est pas tout à fait une variable d'environnement, mais utilisez simplement l'outil CoreFlags pour basculer d'avant en arrière.

Pour passer en 32 bits:

CorFlags.exe TheApp.exe /32BIT+ 

Pour revenir au 64 bits:

CorFlags.exe TheApp.exe /32BIT- 
Cochez la case suivante: / a>

plate-forme cible dans la boîte de dialogue de la propriété du projet

Je vais bientôt essayer celui-ci - en gros, un wrapper exe qui tourne en 32 bits, puis lance votre application ciblée à partir de celle-ci. le mode 32 bits du parent devrait forcer l'exécution d'un binaire compilé AnyCPU en 32 bits. voir http://lostechies.com/gabrielschenker/2009/10/21/force-net-application-to-run-in-32bit-process-on-64bit-os/

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