Build-Konfiguration: Mixed Platform VS Beliebige CPU

92

Was ist der Unterschied zwischen verschiedenen Build Configuration settingszB CPU, Mixed Platform, WIN32 usw. in Visual Studio ?

Rohit
quelle

Antworten:

42

Hier ist ein Link, der die Build-Konfigurationseinstellung in Visual Studio und seine Build-Dateien erklärt:

http://web.archive.org/web/20151215192101/http://visualstudiohacks.com/articles/visual-studio-net-platform-target-explained/

Grundsätzlich gibt die Einstellung an, auf welcher Plattform die Baugruppe ausgeführt werden kann. Wenn AnyCPU ausgewählt ist, wird die resultierende DLL als überall ausführbar markiert. Wenn x86 ausgewählt ist, wird die resultierende DLL so markiert, dass sie nur auf 32-Bit-Systemen ausgeführt werden kann und nicht in 64-Bit-Anwendungen oder -Prozessen ausgeführt wird (sondern in 64-Bit-Windows ausgeführt wird;) und so weiter.

Dadurch werden nur Flags für die kompilierte DLL gesetzt - andere Aspekte des Kompilierungsprozesses werden überhaupt nicht geändert.

porusan
quelle
1
Überprüfen Sie auch diesen Link auf Interaktionen mit Lösungsdateien
J. Polfer
48
Dies scheint jedoch "Mixed Platforms" nicht zu erklären.
Bedrohung
2
@Menace Mein Verständnis (aus einer verlorenen Referenz) ist, dass Visual Studio beim Öffnen einer Lösung, in der nicht alle Projekte dieselbe Konfiguration haben, die Lösungskonfiguration als gemischte Plattformen anzeigt / auswählt . (Wenn ich die ursprüngliche Referenz finden kann, werde ich dies mit einem Zitat ändern.)
koan911
8
Der Link visualstudiohacks.com/articles/… ist tot.
AH.
40

Wie andere Plattform bereits erklärt. (dh X86 für 32 Bit, x64 ist nur für 64 Bit und 'Jede CPU' kann in beiden ausgeführt werden). Ich werde mich darauf konzentrieren Mixed Platformund wie sich das unterscheidet Any CPU.

Dies Any CPUist auf Projektebene der Fall, wo wir wie in der realen Lösung eine Reihe von Projekten unter einer Lösung haben und es besteht die Möglichkeit, dass einige meiner Projekte verwendet werden Any CPU, andere jedoch die Plattform x86oder x64Build verwenden.

Auf Lösungsebene wird also automatisch Mixed Platformausgewählt. Dies zeigt an, dass während der Build / Rebuild-Lösung jedes Projekt basierend auf der ausgewählten Plattform erstellt wird.

Neha Jain
quelle
17

Die Build-Konfigurationsnamen bedeuten nicht viel - sie vermehren sich, wenn Sie C ++ - und C # -Projekte in derselben Lösung haben (und noch schlimmer, wenn Sie auch mobile Projekte haben), da die verschiedenen Projekttypen unterschiedliche Konfigurationsnamen verwenden, sodass Sie enden mit vielen von ihnen.

Wir versuchen, weiterhin alle Konfigurationen zu löschen, die wir nicht verwenden. Dies ist jedoch manchmal harte Arbeit, da beim Hinzufügen eines neuen Projekts unerwünschte Konfigurationen wieder zur Lösung hinzugefügt werden.

Meine Empfehlungen sind, zu entscheiden, welche Konfigurationen Sie benötigen (indem Sie sich die tatsächlichen Einstellungen darin ansehen) und dann alles andere zu entfernen.

Will Dean
quelle
10

Von: diesem Beitrag. https://social.msdn.microsoft.com/forums/vstudio/en-US/81c72e8b-6335-4bf4-b7c0-b5c322edcaee/mixed-platforms-vs-any-cpu

Wenn alle Projekte in einer Lösung vom gleichen Typ sind (z. B. C # / VB-Projekte), stimmen die Lösungskonfigurationen genau mit den Projektkonfigurationen überein. Sobald Sie Projekte in einer Lösung haben, deren Konfigurationen / Plattformen nicht übereinstimmen, erstellt Visual Studio die Konfiguration (en) auf Lösungsebene "Mixed Platforms / Debug" und möglicherweise "Mixed Platforms / Release". Diese Konfigurationen sind nur Zuordnungen zu einzelnen Konfigurationen auf Projektebene.

Wenn Sie beispielsweise ein C # -Projekt und ein C ++ - Projekt haben, wird "Mixed Platforms / Debug" normalerweise "Any CPU / Debug" für das C # -Projekt und "Win32 / Debug" für das C ++ - Projekt zugeordnet.

GilesDMiddleton
quelle