Ich bin neu in der Projektkonfiguration in Visual Studio 2010, aber ich habe einige Forschung betrieben und kann dieses Problem immer noch nicht ganz lösen. Ich habe eine Visual Studio-Lösung mit einem C++-DLL, das auf das C#-DLL verweist. Das C#-DLL verweist auf einige andere DLLs, einige innerhalb meines Projekts und einige externe. Wenn ich versuche, das C++-DLL zu kompilieren, erhalte ich diese Warnung:
Warnung MSB3270: Es gab eine Inkonsistenz zwischen der Prozessorarchitektur des Projekts "MSIL" und der Prozessorarchitektur des Verweises "[internes C#-DLL]", "x86".
Es sagt mir, dass ich zum Konfigurations-Manager gehen soll, um meine Architekturen auszurichten. Das C#-DLL ist mit dem Zielplattform x86 eingerichtet. Wenn ich versuche, dies auf etwas anderes zu ändern, wie z.B. Any CPU, beschwert es sich, weil eine der externen DLLs, auf die es sich bezieht, das Zielplattform x86 hat.
Wenn ich mir den Konfigurations-Manager anschaue, zeigt er die Plattform für mein C#-DLL als x86 und für mein C++-Projekt als Win32 an. Das scheint die richtige Konfiguration zu sein; sicherlich möchte ich nicht, dass das Projekt für mein C++-Projekt auf x64 eingestellt ist, was die einzige andere Option ist, die präsentiert wird.
Was mache ich hier falsch?
0 Stimmen
Was ist die Beschwerde, wenn Sie sie speziell auf Any CPU ändern?
2 Stimmen
Ich habe nicht genug Informationen, um einen fundierten Vorschlag zu machen, aber klicken Sie mit der rechten Maustaste auf Ihre Lösung -> Projektbuildreihenfolge und stellen Sie sicher, dass Ihr C#-Projekt vor dem C++-Projekt erstellt wird. Wenn nicht, gehen Sie zum Registerkarte Abhängigkeiten und geben Sie VS Bescheid, dass das C++-Projekt vom C#-Projekt abhängt.
7 Stimmen
Visual Studio ist wieder Mist. Die Plattform oben auf meinem Bildschirm zeigt x64 an, aber die Warnung besagt, dass das Projekt "MSIL" erstellt wird. Visual Studio sagt mir also, dass es einen Missmatch zwischen Äpfeln und Orangen gibt, obwohl ich keine Äpfel benutze. Können wir es in Visual Stupido umbenennen?
0 Stimmen
Soweit ich das beurteilen kann, handelt es sich hierbei um einen Fehler in Visual Studio. Ich wähle x64 als Zielplattform aus und es sagt mir, dass das Projekt für MSIL erstellt wird.
0 Stimmen
Die kurze Antwort lautet, wenn Ihr Projekt Abhängigkeiten von x86 oder x64 hat, können Sie nicht Any CPU verwenden (was nur für reine .NET-Anwendungen gilt). Sie müssen also entweder für x64 oder x32 bauen, nicht für Any CPU. Dies leitet sich von Daves Antwort ab.