Comment rendre ma compilation optimisée pour Windows 64 bits?C# pour 64bit OS?
Répondre
Un projet géré est automatiquement construit en fonction de l'architecture sélectionnée => le projet C# par défaut créé sur AMD64 sera AMD64, X86 sur X86. Le natif est toujours 32 bits par défaut.
Pour définir explicitement une plate-forme:
1 ouvrir l'explorateur de solution, solution de sélection, droit droit-> Configuration Manager.
2 Aller à 'Plate-forme de la solution active', cliquez sur Nouveau.
3 Dans la boîte de dialogue 'Nouvelle plate-forme de solution' qui s'affiche, sélectionnez la nouvelle plate-forme, par exemple Itanium. Définissez 'Copy Settings From' sur 'Any CPU' qui était le paramètre par défaut dans 'Active Solution Platform'.
4 cliquez sur OK.
C'est de WebLog
Comme Patrick Desjardins a dit, avec un peu plus.
Méfiez-vous si vous avez DLL tiers qui utilise Interop et est compilé avec 32 bits. Dans ce cas, vous devrez spécifiquement définir tous vos assemblys qui l'utilisent pour utiliser x86 ou toutes sortes de choses bizarres se produiront.
Vous pouvez également faire une vérification à l'exécution, juste pour être sûr:
using System;
using System.Runtime.InteropServices;
class SystemChecker
{
static bool Is64Bit
{
get { return Marshal.SizeOf(typeof(IntPtr)) == 8; }
}
}
Vous pouvez compiler pour 64bit à travers le /platform
-flag. Notez que Visual Studio Express n'a aucun paramètre de compilation 64 bits simple. Pour plus d'informations, voir here et here. Tiré de la deuxième source est les informations suivantes:
Sur un Windows 64 bits du système d'exploitation:
- Assemblées compilées avec
/platform:x86
exécutera sur le fonctionnement CLR 32 bits sous WOW64. - compilé avec le Exécutables
/platform:anycpu
exécutera sur le CLR 64 bits. - Les DLL compilées avec
/platform:anycpu
s'exécuteront sur le même CLR que le processus dans lequel elles sont chargées.
Runtime Check:
Vous pouvez vérifier l'environnement de bit d'exécution lors de l'exécution par l'une des options suivantes
bool is64BitProcess = IntPtr.Size == 8;
int bitProcess = IntPtr.Size*8;
//C# 4 provides System.Environment.Is64BitProcess
//TimothyP's solution:
bool is64BitProcess = Marshal.SizeOf(typeof(IntPtr)) == 8;
- 1. Le plugin BHO ne fonctionne pas pour IE7 sur OS 64bit
- 2. Problème d'interopérabilité - Structure C# différente pour différentes architectures OS
- 3. 32bit 64bit bibliothèque référencée
- 4. 32bit vs performance 64bit
- 5. portage de 32bit à 64bit
- 6. 64bit compilation de dllls asp.net
- 7. compilateur pour Windows Mobile OS
- 8. ID machine pour Mac OS?
- 9. Bonjour OS avec C# & mono?
- 10. Lucene pour Blackberry OS?
- 11. JavaServiceWrapper sur 64bit linux, des problèmes?
- 12. Éditeur XML pour OS X
- 13. Liste des polices installées OS X/C
- 14. Port de descripteurs Symbian OS/C++?
- 15. Pourquoi RegOpenKeyEx() renvoie le code d'erreur 2 sur Vista 64bit?
- 16. Détection de l'architecture du processeur (32bit/64bit) dans Scons?
- 17. Notification Service pour l'application Blackberry OS 4.5
- 18. Comment installer libgluezilla pour MAC OS X
- 19. Ajustements Swing pour Mac OS X
- 20. Où est PyGTK pour Mac OS X?
- 21. Alternative à FinalBuilder pour Mac OS X?
- 22. Débogueur Fortran pour Mac OS X
- 23. Impossible de tester avec NUnit sur Vista 64bit
- 24. serveur de VMWare 2.0.0 et vista 64bit DNS dosnt résoudre
- 25. Exécution d'une application asp.net 1.1 sous Windows Server 2008 64bit
- 26. Comment exécuter Mac OS x exécutable à l'aide c iphone
- 27. Stratégie pour traiter 64bit/32bit lors du transfert de données binaires entre machines via TCP/IP
- 28. Utilisation de ant pour détecter les propriétés os et set
- 29. Symbian OS S60 Platform
- 30. Développeur Java répond Objective-C sur Mac OS
ne fonctionnera pas avec les éditions Express de Visual Studio ... –