Empfehlungen für die Visual Studio 2010-Lösungen, die beide "Any CPU" und " x86 " - Projekte
Passiert es oft, dass eine einzelne C# - Lösung enthält einige Projekte, die x86-spezifischen (in der Regel durch die native-Abhängigkeiten) und andere, die sind 'Any CPU'.
Bis vor kurzem habe ich immer gegangen, in die configuration manager und sorgte dafür, dass die Lösung, die Plattform "Any CPU'. Das ist nicht zu viel von einem problem; es erfordert gelegentlich zwickt wie die hier genannten, aber insgesamt ist nicht so schlimm.
Allerdings habe ich vor kurzem begann mich zu Fragen, wenn diese Bemühungen nicht zielführend. Ich bin eindeutig gegen die Möglichkeit, die Visual Studio 2010 (und vorher Visual Studio 2008) ist entworfen, um diese zu bewältigen. "Gemischte Plattformen" ist eigentlich eine genaue Beschreibung, und obwohl es anfangs fühlt sich an wie es ist etwas falsch, bei weiterer Gedanke, den ich zu dem Schluss, dass es nicht mehr falsch, als "Any CPU".
So, in letzter Zeit habe ich versucht, zu wählen zwischen dem halten der "Gemischten Plattformen" oder umstellen auf "x86" als meine Lösung-Plattform in solchen Fällen. Letzteres spiegelt die Absicht: die Letzte EXE-Datei x86, und läuft im 32-bit-Modus auf 64-bit-Betriebssysteme. Der ehemalige jedoch ist das, was Visual Studio wirklich es will.
In eurer Erfahrung, gibt es eine Besondere Lösung, die Plattform, die besser geeignet ist in irgendeiner Weise als die anderen in dieser situation?
Hinweis 1: in jedem Fall, den ich erlebt habe, 'x86' ist gerechtfertigt durch die nativen Abhängigkeiten und 'Any CPU' gerechtfertigt ist, indem Sie eine externe Bibliothek aus, die ist wirklich Plattform-unabhängig.
Note 2: wenn ich das richtig verstehe, die Lösung - Plattform macht nicht viel Unterschied; es ist nur ein name. Es scheint, ändern Sie den Standard "to-build-oder-nicht-zu-bauen" checkbox-Zustand, wenn neue Projekte Hinzugefügt werden, aber das ist der einzige Effekt, den es hat. Richtig?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ad Note 2: ja. Lösung Plattform ist nur ein name für die Gruppe von Projekt-Konfigurationen, einschließlich, ob Sie bauen oder nicht einem bestimmten Projekt.
Ich persönlich benutze
x86
auf alle desktop-Applikationen (desktop, weil diese Bereitstellung auf Endbenutzer-Maschinen, die Sie haben in der Regel wenig Kontrolle über - das ist viel einfacher, wenn Sie die Bereitstellung einer server-Anwendung auf einen bekannten server).Gründe:
Habe ich nur konfiguriert, mein Start-Windows Forms app als "x86" und alle class-Bibliotheken in das Projekt als AnyCPU. Wenn ich das ausführen der app alle nicht verwalteten Abhängigkeiten, selbst aus der Klasse librarys, dass x86 immer noch funktionieren.
Wenn ich nun fügen Sie eine Bibliothek-Klasse, die noch nicht x86 Abhängigkeiten von meinem Projekt um eine weitere app, die konfiguriert ist als AnyCPU es funktioniert out-of-the-box.
Bevor ich wusste, dass alle meine librarys, wo x86-und ich habe eine Ausnahme, wenn ich wollte, Sie zu einem 64-bit-Projekt.
Aus meiner Sicht ist das die beste Lösung.
Ja, das ist ein bisschen ein Durcheinander bekommen Sie, wenn Sie lassen Sie das VS2010 Projekt Konverter importieren Sie ein Projekt aus einer früheren version. Wer kennt Sie nicht. Die alten IDEs verwendet, Debug|Alle-CPU-und-Release|Jeder CPU, da die Standard-Konfiguration Namen. VS2010 wirklich lieber festlegen der Zielplattform auf x86, weil die IDE funktioniert so viel besser, wenn Sie tun. Und nutzt Debug|x86 und Release|x86 als Standard-Konfiguration Namen.
Produziert der mix beim import eines alten Projektes. Und ein extra Satz von Konfigurationen (verschiedene Plattformen) Sie nicht Fragen zum Umgang mit dem Chaos. Igitt. Sie können nicht entfernen Sie entweder die Entfernen-Taste deaktiviert ist, in der Configuration Manager.
Diese sind nur Namen btw, die sind nicht wirklich repräsentativ für die Zielplattform einstellen. Sie können die Einstellung ändern, es nicht wie von Zauberhand ändern Sie den Namen der Konfiguration. Igitt.
Können Sie nicht beheben diese in der IDE. Sie hätte zu Bearbeiten .sln und .vcproj-Dateien, um loszuwerden, die extra-Konfigurationen und Bearbeiten Sie die Namen von denen, die Sie behalten möchten. Oder einfach nur halten "Mixed-Plattformen" als Standard-Konfiguration und der rest wird ignoriert. Setzen Sie einfach die Plattform-Ziel, um das, was Sie brauchen, Sie nicht haben, um mit der Konfiguration Namen.
Hatte etwas mehr Erfahrung mit diesem, hier ' s was ich jetzt denke:
Alles verändern, zu x86 ist unerwünscht, aus zwei Gründen: