Ich habe dieses Problem während des Leistungstests festgestellt.Kompilieren von C# mit beliebigen CPU-Sätzen Die Anwendung kann große (> 2 GB) Adressen verarbeiten
Wenn eine C# Konsolenanwendung mit der x86-Plattform Flag kompilieren, ist die große Adresse Aware-Flag nicht gesetzt:
Ausgabe von dumpbin/headers APP.EXE:
Dump of file app.exe
PE signature found
File Type: EXECUTABLE IMAGE
FILE HEADER VALUES
14C machine (x86)
3 number of sections
569F0089 time date stamp Tue Jan 19 21:35:37 2016
0 file pointer to symbol table
0 number of symbols
E0 size of optional header
102 characteristics
Executable
32 bit word machine
Wenn die Flagge Einstellung "Jede Cpu" die resultierende exe ist Large Address Aware:
Dump of file app.exe
PE signature found
File Type: EXECUTABLE IMAGE
FILE HEADER VALUES
14C machine (x86)
3 number of sections
569F01D7 time date stamp Tue Jan 19 21:41:11 2016
0 file pointer to symbol table
0 number of symbols
E0 size of optional header
22 characteristics
Executable
Application can handle large (>2GB) addresses
Beachten Sie, dass die "Application große handhaben kann (> 2GB) Adressen" Flag gesetzt ist.
Ich kann keine Dokumentation zu diesem Thema finden. Alle anderen Stack-Überlauf Fragen vorschlagen, dass Sie dies manuell tun muss:
How to enable IMAGE_FILE_LARGE_ADDRESS_AWARE in C# source code?
Can I set LARGEADDRESSAWARE from within Visual Studio?
Use the 3Gb of memory in 32 bits applications
Die Frage ist: Wo ist diese dokumentiert?
Nein wo afaik. Es ist reparierbar, seltsam, dass Sie nicht an Lösungen interessiert sind. –
@HansPassant, es ist nicht unbedingt ein Problem (für uns), nur sehr unerwartet. Und die Tatsache, dass es undokumentiert ist, macht es zu einem Schmerz. –
Die nächste Sache, die ich zu Dokumentation von einer primären Quelle finden kann, ist dieser Blogbeitrag, http://blogs.msdn.com/b/calvin_hsia/archive/2010/09/27/10068359.aspx. – JamieSee