2010-04-29 3 views
2

J'utilise SQLite pour les tests unitaires et je pourrais l'utiliser comme base de données pour le développement/la mise en scène locale.Spécifique à la plate-forme de référence System.Data.SQLite

Le System.Data.SQLite a fondamentalement 2 versions: x86 et x64. Correct doit être utilisé pour la plate-forme spécifique.

J'ai 64 bits Win7, d'autres gars de l'équipe peuvent utiliser des systèmes d'exploitation 32 bits. La plateforme du serveur n'est pas connue à ce stade. Si j'utilise la version 32 bits de l'ensemble sur la plate-forme 64 bits, je reçois BadImageFormatException: Could not load file or assembly 'System.Data.SQLite'. Je crois que similaire se produira en essayant d'utiliser l'assemblage 64 bits sur la plate-forme 32 bits.

Donc, ma question est quelle est la meilleure façon de référence l'assembly SQLite de sorte qu'il ne dépend pas de la plate-forme et les gens peuvent simplement l'utiliser?

Il est autorisé d'utiliser une version 32 bits de l'assemblage sur une plate-forme 64 bits (peut-être y at-il un commutateur pour cela quelque part?).

+0

duplication possible de http://stackoverflow.com/questions/2728189/have-visual-studio-copy-x64-dll-or-x86-dll-when-building-ac-project –

Répondre

0

S'il est installé dans le GAC, il vous suffit de référencer l'assembly et le système sélectionne le bon.

Sinon, vous devez vous assurer que vous faites référence à la bonne "manuellement" (j'ai utilisé dans le passé un système de construction qui copiait la bonne version dans le dossier "deploy" lors de la construction. faire est 64 bits, donc ce n'est pas une grosse affaire). Vous pouvez également créer votre application en tant que x86, puis utiliser exclusivement la version 32 bits.

Dans les propriétés du projet, sous l'onglet Générer, définissez "Platform target" sur "x86". Vous avez seulement besoin de faire cela avec des exécutables: les DLL peuvent toujours être AnyCPU.

+0

J'ai référencé par GAC mais il utilise l'assemblage de la version 32 bits. –

+0

Ok. Je vais devoir accepter la réponse qui ressemble à une solution. Cela ne fonctionne pas comme je l'espère. Pour l'instant j'ai mis la plate-forme à x86 pour mes projets et j'utilise la version x86 tout le temps. –

Questions connexes