Question

Comment forcer mon application à s'exécuter en 32 bits sur une machine 64 bits?

Le code est écrit en C #.

Était-ce utile?

La solution

Cliquez avec le bouton droit de la souris sur votre projet et sélectionnez les propriétés.

Dans les propriétés, sélectionnez l'onglet Génération. Sous cible de la plate-forme, sélectionnez x86.

Appuyez sur Ctrl + Maj + S pour enregistrer tous les fichiers, cliquez avec le bouton droit de la souris sur la solution et sélectionnez "Nettoyer". se débarrasser des anciens fichiers binaires. Toutes les constructions ultérieures doivent être au format 32 bits

Autres conseils

Formulaire de ligne de commande:

corflags application.exe /32BIT+ 

Voici comment je l'ai fait lorsque nous n'avons pas pu modifier le code existant de Any CPU à x86 en raison d'un limitation de ClickOnce :

Créez une application 'launcher' 32 bits (x86 doit être cochée sous les propriétés du projet) (application Windows mais pas de formulaire):

    static void Main(string[] args)
    {
        // Load the assembly    
        string directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
        string assemblyName = Path.Combine(directory, "YourAnyCPUApplication.exe");
        Assembly assembly = Assembly.LoadFile(assemblyName);
        assembly.EntryPoint.Invoke(null, null);
    }

Ajoutez le code suivant à la méthode Main dans le projet Any CPU :

        if (IntPtr.Size == 4)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            // etc...
        }
        else
        {
            // Launch application in 32-bit mode
            System.Diagnostics.Process.Start(Path.GetDirectoryName(Application.ExecutablePath) + @"\Your32BitApplicationLauncher.exe");
        }

J'espère que cela aide :-)

Si vous accédez à Configuration Manager dans Visual Studio, vous pouvez définir la plate-forme sur x86 ou x64.

En supposant qu'il s'agisse d'un service Winforms, d'une application console ou d'un service Windows, vous devez créer le fichier exe pour x86 au lieu de N'importe quel processeur. Cela se trouve dans le Gestionnaire de configuration.

Visual Studio 11 et .NET Framwork 4.5 ou version ultérieure disposent d'une option pour Toute CPU préférée à 32 bits et c'était la valeur par défaut depuis

Le code résultant s'exécutera sur toutes les plates-formes, mais sur les plates-formes 64 bits, il sera exécuté en tant que processus 32 bits

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