2009-07-02 8 views
7

Muss eine Anwendung in .NET in 64-Bit gebaut werden, um den vollen Vorteil einer Maschine mit einem 64-Bit-Betriebssystem darauf zu nutzen, oder wird es nur als 32 nutzen Bit-Build. Grundsätzlich gibt es ein Problem mit einer Ausnahme wegen zu wenig Speicher und es wurde vorgeschlagen, die Konsolenanwendung auf einer 64-Bit-Box auszuführen, die das Problem "lösen" könnte. Die Frage ist, können wir nur eine 64-Box hochdrehen und die aktuelle App darauf werfen oder muss ich die App auf 64-Bit-Weise neu erstellen..net Konsole App 32 vs 64 Bit

Antwort

12

Wenn Ihre App für die Plattform "Any CPU" konfiguriert ist, wird sie auf beiden Plattformen ordnungsgemäß ausgeführt.

Stellen Sie sicher, dass es keine 32/64 Bit spezifischen Sachen verwendet, sonst treten Probleme auf.

MSDN-Dokumentation here.

Für einige Diskussion über Nachteile, siehe here

+7

Dies ist nicht streng zutreffend ab .Net 4.5, müssen Sie auch deaktivieren 32-Bit in Projekteinstellungen, siehe: http: // Blogs .microsoft.co.il/sasha/2012/04/04/what-anycpu-wirklich-bedeutet-wie-von-net-45-and-visual-studio-11 / – gmn

5

Wenn es für jede Plattform (Standard) integriert ist, ist es in 64-Bit auf 64-Bit-Betriebssystemen ausgeführt werden.

Das gesagt, es gibt immer noch potentielle Probleme zu beachten. Wenn Sie mit nativem Code interagieren (über p/invoke, C++/CLI oder COM), müssen Sie diesen Code auf 64-Bit portieren. Wenn die Anwendung zu 100% verwaltet wird, funktioniert sie einfach.

1

"Jede CPU" ist dein Freund.

Als beiseite:

Wir hatten eine besonders große Trie Struktur, die das 2 GB Speicherplatz von 32-Bit-Windows-überschritten. Da der Großteil der Struktur aus Objektreferenzen besteht, haben wir festgestellt, dass sich die Speicheranforderungen der App bei einer Migration auf 64 Bit fast verdoppelt haben und ungefähr 4 GB erforderlich sind. Dies liegt daran, dass der Speicher zum Speichern einer Referenz 64 Bit breit statt 32 ist.

Verwandte Themen