Как сделать приложение .NET "большим адресом"?

Предполагая, что я загрузил 32-разрядный Windows Server с ключом /3GB, как я могу заставить приложение .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)"

От: vsvars32.bat в Visual Studio 2017