Ich bin neu bei der Projektkonfiguration in Visual Studio 2010, aber ich habe einige Recherche betrieben und kann dieses Problem immer noch nicht ganz verstehen. 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 einen Konflikt zwischen der Prozessorarchitektur des zu erstellenden Projekts "MSIL" und der Prozessorarchitektur der Referenz "[internes C#-DLL]", "x86".
Es sagt mir, dass ich zum Konfigurations-Manager gehen soll, um meine Architekturen abzugleichen. Das C#-DLL ist mit dem Plattformziel x86 eingerichtet. Wenn ich versuche, dies auf etwas anderes zu ändern, z. B. Any CPU, beschwert es sich, weil eine der externen DLLs, von der es abhängt, das Plattformziel x86 hat.
Wenn ich den Konfigurations-Manager anschaue, wird die Plattform für mein C#-DLL als x86 und für mein C++-Projekt als Win32 angezeigt. Dies scheint die richtige Konfiguration zu sein; sicherlich möchte ich nicht, dass das Projekt für mein C++-Projekt auf x64 festgelegt ist, was die einzige andere Option ist, die angeboten wird.
Was mache ich hier falsch?
0 Stimmen
Was ist die Beschwerde, speziell, wenn Sie es auf Any CPU ändern?
2 Stimmen
Ich habe nicht genug Informationen, um einen fundierten Vorschlag zu machen, aber mit der rechten Maustaste auf Ihre Lösung klicken -> Projekterstellungsreihenfolge und sicherstellen, dass Ihr C#-Projekt vor dem C++-Projekt erstellt wird. Wenn nicht, gehen Sie zum Register "Abhängigkeiten" und geben Sie VS Bescheid, dass das C++-Projekt vom C#-Projekt abhängt.
7 Stimmen
Visual Studio ist wieder Mist darin. Die Plattform oben auf meinem Bildschirm sagt x64, aber die Warnung besagt, dass das Projekt, das erstellt wird, "MSIL" ist. Also sagt Visual Studio mir, dass es eine Diskrepanz zwischen Äpfeln und Orangen gibt, wenn ich keine Äpfel benutze. Können wir es umbenennen in Visual Stupido?
0 Stimmen
So weit ich weiß, handelt es sich hierbei um einen Fehler in Visual Studio. Ich wähle x64 als die Plattformziel aus und es wird mir gesagt, 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 ist). Sie müssen also entweder für x64 oder x32 bauen, nicht Any CPU. Dies stammt von Daves Antwort