Gestionnaire de configuration VS2005 [Résolu]

babe59 189 Messages postés vendredi 28 mai 2004Date d'inscription 27 novembre 2015 Dernière intervention - 17 mai 2011 à 17:46 - Dernière réponse : babe59 189 Messages postés vendredi 28 mai 2004Date d'inscription 27 novembre 2015 Dernière intervention
- 18 mai 2011 à 09:07
Bonjour,
Pourriez-vous m'éclairer sur le gestionnaire de configuration (ou me proposer un lien) ?

Voilà, je suis sous VS2005 et je viens de passer sous Win7 x64(avant j'étais sous Vista x86).
Mes programmes se connectent à une base Oracle via ODP.NET.
Maintenant, pour faire fonctionner mes programmes sur des plateformes x86 (compilés sur une machine 64bits), j'ai dû passer la config de VS de "Any CPU" à X86.
Ça ne me choque pas puisque je lui demande de fonctionner sur le 32bits. Par contre, par curiosité, j'ai compilé un programme (qui n'utilise pas Oracle) avec la config "Any CPU" sur mon 64 bits et celui-ci a fonctionné sur un 32 bits. Pourquoi ça marche ?
Je n'ai vraiment pas compris la philosophie du gestionnaire de configuration...
Slts


DT
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 18 mai 2011 à 08:53
3
Merci
Il faudra de toute façon que tu installe le package 32 bits sur une plateforme 32 bits.

Ensuite, sur une plateforme 64 bits, soit tu compile en x64 ou Any CPU, dans ce cas c'est le package 64 bits qui devra être installé, soit tu force la compilation x86, dans ce cas là tu devras installer le package 32 bits.

Sur 32 bits, t'as pas le choix, sur 64 bits c'est le mode de compilation de ton appli qui t'impose le package à installer.

[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de cs_casy
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 17 mai 2011 à 18:21
0
Merci
Habituellement c'est sur des plateformes 64 bits que l'on rencontre des problèmes.

x86 force le mode d’exécution en 32 bits quelque soit la plateforme, même sur une plateforme 64 bits
x64 force le mode d’exécution en 64 bits quelque soit la plateforme, même sur une plateforme 32 bits (et dans ce cas là, ça ne peut pas marcher)
Any CPU utilisera le mode d’exécution en fonction de la plateforme. Sur une plateforme 32 bits, l’exécutable fonctionnera en 32 bits, mais sur une plateforme 64 bits, le même executable (sans recompilation) fonctionnera en 64 bits.

LE problème se pose généralement avec les dll tierce et autres composants que l’exécutable utilise. Ceux-ci sont appelés dans le même mode d’exécution que l’exécutable. Il faut donc que ces composants, tout du oins leur version installé sur la cible soient compatible avec le mode d’exécution demandé.

Ainsi par exemple, un logiciel qui accède à une base de données Accès version 2003 ou inférieure doit obligatoirement être compilé en x32, parce que, pour accéder à la base le logiciel utilisera le moteur Microsoft Jet 4.0. Celui-ci n'existe pas en version 64 bits. Le logiciel ne pourra donc pas l’appeler en mode x64 et donc par définition ne doit donc pas fonctionner en x64.

Dans ton cas, le logiciel, qu'il soit compilé en Any CPU, ou en x86 doit fonctionner en 32 bits sur une plateforme 32 bits. Ton problème est un peu surprenant dans ce sens.


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Commenter la réponse de cs_casy
babe59 189 Messages postés vendredi 28 mai 2004Date d'inscription 27 novembre 2015 Dernière intervention - 18 mai 2011 à 08:30
0
Merci
Merci pour cette réponse. C'est plus clair maintenant.
Pour répondre à ton interrogation, Pour installer ODP.NET (client Oracle), il faut choisir entre un package d'install 32 ou 64.
Le client 64 ne fonctionne pas sur un systeme 32.
Le client 32 lui fonctionne sur les deux plateformes mais si je compile en "Any CPU", j'ai l'erreur "Impossible de charger le fichier ou l'assembly 'Oracle.DataAccess, Version=2.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342' ou une de ses dépendances. Le fichier spécifié est introuvable."
Alors que si je compile en X86 pas de souci
DT
Commenter la réponse de babe59
babe59 189 Messages postés vendredi 28 mai 2004Date d'inscription 27 novembre 2015 Dernière intervention - 18 mai 2011 à 09:07
0
Merci
je te rejoins sur ton dernier post,

En regardant de plus pres l'erreur, je me suis rendu compte que lorsque j'exécuté en "Any CPU", il allait chercher la DLL Oracle en 64bits. Or je n'ai pas installé le package oracle 64bits. ce comportement ne me choque pas car ma machine est une 64bits - si j'ai bien compris-)...

j'ai donc décidé d'installer en plus du package 32bits le package 64bits. j'ai aussi recompilé la DLL en référence de mon projet qui avait été compilé en x86 et là, mon programme a bien fonctionné en "Any CPU" ! Il fonctionne sur un x64 et sur un x86 !

Donc en conclusion : si j'ai tout bien assimilé : je profiterai du 64 bits sur une machine x64 et mon programme fonctionnera aussi en 32bits

Parfait.
Merci de ton aide

DT
Commenter la réponse de babe59

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.