2 votes

Exécuter des applications dans Windows 7 en 32 bits

Nous avons donc une application qui compilait pour "Tout processeur". Elle s'exécutait en mode 64 bits sur les machines Windows 7, mais se plantait lorsqu'elle essayait d'appeler un interop fonctionnant en mode 32 bits.

J'ai modifié les cibles de compilation pour cibler x86 pour le projet, je l'ai compilé et exécuté localement, et il a fonctionné correctement.

Cependant, lorsque ce changement a été effectué, il fonctionne toujours en 64 bits dans les machines Windows 7 en production.

Lorsque j'ai effectué le changement, j'ai simplement ouvert le gestionnaire de configuration dans VS2010, je l'ai changé en x86, je l'ai sauvegardé et j'ai validé le changement pour chaque projet de la solution.

Comment faire pour qu'il fonctionne en mode 32 bits ? Dois-je changer quelque chose d'autre ?

5voto

Binary Worrier Points 27424

Vous souhaitez que le corflags dans le SDK

corflags MyApp.exe /32bit+

modifiera l'exe pour qu'il s'exécute en tant que processus 32bit.

Inversement

corflags MyApp.exe /32bit-

Je changerai l'exe pour AnyCPU.

corflags MyApp.exe

Vous indique ce qui se trouve dans l'en-tête de l'exe, afin que vous puissiez voir ce qu'il va cibler.

4voto

Hans Passant Points 475940

C'est un piège malheureux dans VS2010, le paramètre "Active solution platform" dans Configuration Manager n'est pas pertinent pour les projets C# et VB.NET gérés. Pour C#, vous devez utiliser Projet + Propriétés, onglet Build, paramètre Platform target. Seul le paramètre du projet de démarrage (EXE) est important.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X