558 Stimmen

Wie behebe ich den Visual Studio-Kompilierungsfehler "Übereinstimmung zwischen Prozessorarchitekturen"?

Ich bin neu in der Projektkonfiguration in Visual Studio 2010, aber ich habe einige Recherche betrieben und kann dieses Problem immer noch nicht ganz lösen. Ich habe eine Visual Studio-Lösung mit einer C++ DLL, die auf die C# DLL verweist. Die C# DLL verweist auf einige andere DLLs, einige innerhalb meines Projekts und einige externe. Wenn ich versuche, die C++ DLL zu kompilieren, erhalte ich diese Warnung:

Warnung MSB3270: Es gab eine Unstimmigkeit zwischen der Prozessorarchitektur des Projekts, das erstellt wird, "MSIL" und der Prozessorarchitektur der Referenz "[interne C# dll]", "x86".

Es sagt mir, dass ich zum Konfigurations-Manager gehen soll, um meine Architekturen anzupassen. Die C# DLL ist mit dem Plattformziel x86 eingerichtet. Wenn ich versuche, dies auf etwas anderes wie Any CPU zu ändern, beschwert es sich, weil eine der externen DLLs, von der sie abhängt, das Plattformziel x86 hat.

Wenn ich mir den Konfigurations-Manager anschaue, zeigt er die Plattform für meine C# DLL als x86 und für mein C++-Projekt als Win32 an. Das scheint die richtige Einrichtung zu sein; ich möchte sicherlich nicht, dass das Projekt für mein C++-Projekt auf x64 gesetzt ist, was die einzige andere Option ist, die präsentiert wird.

Was mache ich hier falsch?

0 Stimmen

Was ist die Beschwerde, speziell, wenn man sie auf Any CPU ändert?

2 Stimmen

Ich habe nicht genügend Informationen, um einen fundierten Vorschlag zu machen, aber klicken Sie mit der rechten Maustaste auf Ihre Lösung -> Projektbaureihenfolge und stellen Sie sicher, dass Ihr C#-Projekt vor dem C++-Projekt erstellt wird. Wenn nicht, gehen Sie zum Registerkarte "Abhängigkeiten" und teilen Sie VS mit, dass das C++-Projekt vom C#-Projekt abhängt.

7 Stimmen

Visual Studio ist wieder Mist in diesem Fall. Die Plattform oben auf meinem Bildschirm zeigt x64 an, aber die Warnung besagt, dass das Projekt, das gebaut wird, "MSIL" ist. Also sagt mir Visual Studio, dass es einen Unterschied zwischen Äpfeln und Orangen gibt, wenn ich keine Äpfel benutze. Können wir es in Visual Stupido umbenennen?

0voto

NicoCV Punkte 41

Ich hatte eine sehr ähnliche Warnung in meinem Build. Meine Projekte waren auf .NET 4.5 ausgerichtet, auf dem Build-Server war das Windows 8.1 SDK (für .NET 4.5.1) installiert. Nachdem ich meine Projekte aktualisiert habe, um auf .NET 4.5.1 abzuzielen (das war für mich kein Problem, sondern für eine völlig neue Anwendung), habe ich die Warnung nicht mehr erhalten...

0voto

Eduardo Pelais Punkte 1547

Ich habe diese Warnung gelöst, indem ich "Konfigurations-Manager" in Release (Mixed Platform) geändert habe.

0voto

cdonner Punkte 35735

Ich habe diese Warnung in Visual Studio 2012 erhalten, als ich ein SQL Server 2012 SP1 SSIS-Pipeline-Skript aufgaben kompiliert habe - bis ich SQL Server 2012 SP2 installiert habe.

0voto

Saghachi Punkte 673

Ich hatte dasselbe Problem mit SQLite beim Öffnen der Verbindung, und durch die Verwendung von Nuget und der Installation des im Projekt verwendeten Komponente (SQLite) wurde es behoben! Versuche, deine Komponente auf diese Weise zu installieren und überprüfe das Ergebnis

0voto

Damion Punkte 63

Möchte nur für diejenigen posten, die hier keine Antworten finden, die ihr Problem gelöst haben.

Stellen Sie beim Ausführen Ihrer Anwendung sicher, dass das Lösungsplattform-Dropdown-Menü richtig eingestellt ist. Meins war auf x86 eingestellt, was wiederum dieses Problem verursacht hat.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X