Подтвердить что ты не робот

Можно ли установить LARGEADDRESSAWARE из Visual Studio?

У меня есть сборка .net, которая должна быть 32-битной и должна быть /LARGEADDRESSAWARE.

Я знаю, как это сделать с помощью EditBin, но мне интересно, есть ли встроенный способ в Visual Studio 2010? Или, наоборот, кто-то написал задачу MSBuild для этого?

Изменить: это для приложения С#, поэтому параметры компоновщика печально: (

4b9b3361

Ответ 1

Вы можете сделать это как задачу Post-build. На вкладке "Build Events" введите следующую команду

editbin /largeaddressaware $(TargetPath)

в командной строке события после сборки:

Это относится к VS2008. Я думаю, что он должен работать таким же образом для VS2010.

Ответ 2

Основываясь на ответе @RouMao, вы можете получить сообщение об ошибке, указывающее, что editbin не может быть найден. Убедитесь, что среда в командной строке события после сборки настроена правильно, указав следующее:

call "$(VS100COMNTOOLS)..\tools\vsvars32.bat"
editbin /largeaddressaware $(TargetPath)

Еще одна вещь, которую следует понимать, заключается в том, что если на вкладке "Отладка" в свойствах вашего проекта флажок "Включить процесс хостинга Visual Studio" установлен (по умолчанию), ваше приложение не будет работать с LARGEADDRESSAWARE (поскольку vshost.exe не помечен правильно). Снимите этот флажок, чтобы отладить ваше приложение с помощью LARGEADDRESSAWARE.

Ответ 3

Это пакет NuGet, который может установить BigAddressAware на ваш двоичный файл после его создания: https://github.com/KirillOsenkov/LargeAddressAware

Для него не требуется файл editbin.exe, так как он имеет управляемое приложение для программного программирования: https://github.com/KirillOsenkov/LargeAddressAware/blob/master/SetLargeAddressAware/LargeAddressAware.cs

Update: Чтобы использовать его, просто установите пакет и добавьте это свойство в свой .csproj:

<PropertyGroup> <LargeAddressAware>true</LargeAddressAware> </PropertyGroup>