2010-10-29 20 views
4

Je développe sur une assez grande forme de formulaires Windows .NET (C#) avec plusieurs assemblys. A l'origine, chaque assemblage était construit pour le Target Platfom "Any CPU". En raison d'un problème avec Crystal Reports sur les machines x64, nous avons dû créer l'ensemble du projet pour la plate-forme cible x86. J'ai commencé à reconstruire certains de nos projets pour x86 et cela a très bien fonctionné. Mais avec celui que je le problème, l'autre ne se charge pas, il donne l'erreur suivante lorsque je tente de l'utiliser comme une référence dans une autre Assemblée:Chargement d'un assemblage échoue en raison d'un format incorrect

Could not load file or assembly #MyAssembly# or one of its dependencies. An attempt was made to load a program with an incorrect format.

Lors de la lecture Autour de Crystal dans un exemple de projet Avec plus d'un assemblage j'ai découvert que cette erreur se produit lorsque les projets sont construits pour différentes plates-formes cibles. Mais ce n'est pas le cas ici. Je construis tous les projets pour X86 et je n'arrive pas à comprendre où est le problème ici.

+0

Avez-vous vérifié le gestionnaire de tâches si votre application fonctionne réellement en mode 32 bits? – testalino

Répondre

6

Vous pouvez essayer, pour construire votre MainProject (exécutable) avec la plate-forme cible "x86" ou "x64", tous les autres projets que vous avez définis comme "Any CPU".

+0

Oui ça ne marche pas. Il semble que cela inclut les assemblys construits pour x86 ne peut pas être inclus dans les applications construites pour un processeur. (Au moins c'était mon expérience) – Robert

+1

@Robert Spari: Seul votre MainProject (WindowsForms) avec la Main-Methode devrait être compilé avec "x86". Tous les autres projets (Bibliothèque) doivent être compilés avec "Any CPU". – Jehof

+0

Je suis désolé que vous aviez absolument raison, je l'ai juste remis pour test. Merci beaucoup – Robert