AnyCPU/x86/x64 pour application en C# et C++/CLI dépendance

Je suis développeur Windows, je suis l'aide de Microsoft visual studio 2008 SP1. Mon ordinateur du développeur est de 64 bits.

Le logiciel, je suis actuellement en train de travailler sur est géré .exe écrit en C#. Malheureusement, j'ai été incapable de résoudre l'ensemble du problème uniquement en C#. C'est pourquoi j'ai également développé un petit géré une DLL en C++/CLI. Les deux projets sont dans la même solution.

Mon C# .exe construire cible "any CPU". Quand mon C++ DLL construire cible "x86", la DLL n'est pas chargé.
Aussi loin que je l'ai compris quand j'ai googlé, la raison est le C++/CLI langue, contrairement à d'autres .NET languages, compilé en code natif, pas de code managé.

Je suis passé au C++ DLL construire cible x 64, et tout fonctionne maintenant. Cependant, autant que je sache, tout s'arrête de fonctionner dès que mon client va installer mon produit sur un 32-bit OS. J'ai à prendre en charge Windows Vista et 7, les deux versions 32 et 64 bits de chacun d'eux.

Je n'ai pas envie de retomber sur 32 bits. De 250 lignes de code C++ dans ma DLL n'est que 2% de ma base de code. Et cette DLL n'est utilisé que dans plusieurs endroits, de sorte que dans le scénario d'utilisation habituelle, il n'est même pas chargé.

Ma DLL met en œuvre deux objets COM avec ATL, donc je ne peux pas utiliser "/clr:coffre-fort" projet de création d'.

Est-il moyen de configurer la solution et les projets, de sorte que C# projet s'appuie "any CPU" version, le projet C++ construit les deux 32 bits et les versions 64 bits, puis dans l'exécution lorsque le géré .EXE est en cours de démarrage, il utilise une DLL 32 bits ou 64 bits DLL en fonction de l'OS?

Ou peut-être il y a une meilleure solution, je ne suis pas au courant?

Merci d'avance!

Est-il une raison pour laquelle vous ne pouvez pas simplement distribuer des deux versions, l'une pour les architectures x86 et une pour x64?
Êtes-vous sûr de compiler le C++ CLI?

OriginalL'auteur Soonts | 2010-06-03