Предполагая, что я загрузил 32-разрядный Windows Server с ключом /3GB, как я могу заставить приложение .NET использовать дополнительное адресное пространство?
Как сделать приложение .NET "большим адресом"?
Ответ 1
Флаг является частью заголовка изображения, поэтому вам нужно изменить его с помощью editbin.
editbin /LARGEADDRESSAWARE <your exe>
Используйте dumpbin /headers
и найдите наличие Application can handle large (>2GB) addresses
, чтобы увидеть, установлен ли флаг или нет.
Ответ 2
Из того, что я могу сказать, вам нужно использовать утилиту editbin, показанную в существующем ответе. Кажется, что не существует способа установить флаг с помощью Visual Studio.NET, похоже, они поощряют людей компилировать для 64-битного, если это возможно, вместо использования флага
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=93771
Ответ 3
Чтобы сделать это автоматически с помощью Visual Studio, обратитесь к этому вопросу: флаг из visual studio.
Ответ 4
Добавьте эти строки в Post build:
call "$(DevEnvDir)..\tools\vsdevcmd.bat"
editbin /largeaddressaware "$(TargetPath)"