ODP.NET pour à la fois 32 bits et 64 bits
Je développe une application qui utilise ODP.NET pour vous connecter à Oracle DB. Je voudrais avoir une version à la fois 32 bits et 64 bits des machines. Le problème est que je ne pouvais pas comprendre comment construire un projet avec anycpu cible, il semble qu'il exige que la cible soit le même que l'ODP version du pilote. Donc, cela signifie que j'ai besoin d'avoir de versions de la même application un pour les 32 bits et l'autre pour la 64 bits. Mais ce n'était pas le problème lors de l'utilisation de MS .NET client Oracle (Système d'.Les données.OracleClient). Est-il possible d'avoir le même comportement à l'aide de ODP.NET comme sur MS .NET client?
OriginalL'auteur NDeveloper | 2011-08-05
Vous devez vous connecter pour publier un commentaire.
Viens de mettre à jour quelques années plus tard: Oracle a publié géré ODP.NET client, donc il n'y a pas besoin de s'embêter avec les systèmes x64/x86 .NET applications. Vous pouvez trouver plus d'informations sur Oracle site web: http://www.oracle.com/technetwork/topics/dotnet/index-085163.html
Malheureusement, ils ont encore de la compilation de la gérée assemblées explicite x86 ou x64. on peut donc s'attendre à plus de la même Architecture de Processeur avertissements/erreurs lors de l'utilisation de AnyCPU
OriginalL'auteur Buthrakaur
La cause racine est l'ODP.NET's de la confiance sur maternelle BEC Dll, qui bien sûr ne peut pas être "CPU".
Théoriquement, ODP.NET capable de détecter la "bit-ness" de l'exécution en cours dans le .NET code et ensuite de charger dynamiquement des 32-bit ou 64-bit Dll natives en conséquence, mais ce n'est pas comment il est actuellement mis en œuvre.
Oracle corporation est actuellement dans le processus de mise en œuvre d'un entièrement géré fournisseur de. Mais jusqu'alors, nous sommes coincés avec le fait de devoir faire des constructions séparées pour chaque "bit-ness".
Any CPU
est très bien, aussi longtemps que le déploiement de la cible n'a qu'un seul client oracle et vous faites référence à la DLL dans le GAC. Par exemple, j'construire des applications web pour un serveur 64 bits. Mes références de projet, les 32 bits de l'accès aux données de la bibliothèque à partir de GAC, mais quand je le déployer, il recherche la même bibliothèque dans le GAC et trouve le 64 bits copier,... et il fonctionne parfait.OriginalL'auteur Branko Dimitrijevic
L'option par défaut pour n'importe quel projet C# est-il fonctionnera sur les deux x64 et x86 de système d'exploitation.
C'est prévu....Vous avez besoin de sortir une version x86 et x64 version, veuillez prendre note, x86 application ne peut pas faire référence à un x64 assemblée et vice-versa.
La raison pour laquelle la référence Microsoft était différent parce que sa partie des .NET Framework par défaut.
Je ne peut pas télécharger le fichier où j'en suis, je crois, que, ODP.NET a un x86 assemblée et un x64 assemblée.
La manière correcte est de sortir une version x86 et x64 version de votre programme.
OriginalL'auteur Security Hound
ODP.NET est spécialement conçu pour les 32 bits ou 64 bits plate-forme. Ils pourraient avoir construit une bibliothèque unique pour AnyCPU qui permettrait de l'utiliser dans un 32-bits ou 64-bits processus. Cependant, comme Branko Dimitrijevic fait allusion, l'ODP.NET dll géré utilise des bibliothèques natives derrière les coulisses. Bibliothèques natives sont spécifiques à la plateforme; donc besoin d'Oracle pour construire séparé ODP.NET bibliothèque pour chaque plate-forme. Il n'y a pas d'alternative.
OriginalL'auteur user3923143