Je suis novice en matière de configuration de projets dans Visual Studio 2010, mais j'ai fait un peu d'expérience dans ce domaine. recherche et je n'arrive toujours pas à résoudre ce problème. J'ai une solution Visual Studio avec une DLL C++ faisant référence à la DLL C#. La DLL C# fait référence à quelques autres DLL, certaines dans mon projet et d'autres externes. Lorsque j'essaie de compiler la DLL C++, j'obtiens cet avertissement :
avertissement MSB3270 : Il y a eu un désaccord entre l'architecture du processeur du projet en cours de construction "MSIL" et l'architecture du processeur de la référence "[internal C# dll]", "x86".
Il me dit d'aller dans le Configuration Manager pour aligner mes architectures. La DLL C# est configurée avec une cible de plate-forme x86. Si j'essaie de changer cela en quelque chose d'autre, comme Any CPU, il se plaint parce que l'une des DLL externes il dépend de la plateforme cible x86.
Lorsque je regarde le Gestionnaire de configuration, la plate-forme de ma DLL C# est x86 et celle de mon projet C++ est Win32. Cela semble être la bonne configuration ; je ne veux certainement pas que la plate-forme de mon projet C++ soit définie sur x64, ce qui est la seule autre option présentée.
Qu'est-ce que je fais de mal ici ?
0 votes
Quelle est la plainte, spécifiquement, lorsque vous le changez en n'importe quel CPU ?
2 votes
Je n'ai pas assez d'informations pour faire une suggestion éclairée, mais faites un clic droit sur votre solution -> Project Build Order et assurez-vous que votre projet C# est construit avant le projet C++. Si ce n'est pas le cas, allez dans l'onglet Dépendances et faites savoir à VS que le projet C++ dépend du projet C#.
6 votes
Visual Studio est encore une fois merdique sur ce point. La plate-forme en haut de mon écran indique x64 mais l'avertissement indique que le projet en cours de construction est "MSIL". Donc Visual Studio me dit qu'il y a un décalage entre des pommes et des oranges alors que je n'utilise pas de pommes. Peut-on le renommer en Visual Stupido ?
0 votes
En ce qui me concerne, il s'agit d'un bogue dans Visual Studio. Je sélectionne x64 comme plateforme cible et il me dit que le projet est en cours de construction pour MSIL.
0 votes
La réponse courte est que si votre projet a des dépendances sur x86 ou x64, vous ne pouvez pas utiliser Any CPU (qui est seulement pour les applications .NET pures). Vous devez donc construire pour x64 ou x32, et non pour Any CPU. Ceci est dérivé de l'article de Dave réponse