Можно ли установить LARGEADDRESSAWARE из Visual Studio?
У меня есть .net-сборка, которая должна быть 32-разрядной и должна быть /LARGEADDRESSAWARE.
Я знаю, как это сделать с EditBin, но мне интересно, есть ли встроенный способ в Visual Studio 2010? Или, наоборот, кто-то написал задачу MSBuild для этого?
Edit: это для приложения C#, так что никаких вариантов компоновщика, к сожалению : (
3 ответов:
вы можете сделать это как задача после сборки. На вкладке "построить события" введите следующую команду
editbin /largeaddressaware $(TargetPath)в " командную строку события после сборки:"
Это относится к VS2008. Я думаю, что он должен работать таким же образом для VS2010.
основываясь на ответе @RouMao, вы можете получить сообщение об ошибке, в котором говорится, что editbin не может быть найден. Убедитесь, что среда в командной строке события после сборки настроена правильно, указав следующее:
call "$(VS100COMNTOOLS)..\tools\vsvars32.bat" editbin /largeaddressaware $(TargetPath)еще одна вещь, чтобы понять, что если под Debug вкладка в свойствах вашего проекта, что включить процесс размещения Visual Studio флажок установлен (по умолчанию), ваше приложение не будет работать с LARGEADDRESSAWARE (потому что vshost.exe не помечен должным образом). Снимите этот флажок, чтобы отладить приложение с помощью LARGEADDRESSAWARE.
это пакет NuGet, который может установить LargeAddressAware на вашем двоичном файле после его сборки:https://github.com/KirillOsenkov/LargeAddressAware
для этого не требуется editbin.exe, поскольку у него есть управляемое приложение для установки флага программно: https://github.com/KirillOsenkov/LargeAddressAware/blob/master/SetLargeAddressAware/LargeAddressAware.cs
обновление: Чтобы использовать его, просто установите пакет и добавьте это свойство в ваш.csproj:
<PropertyGroup> <LargeAddressAware>true</LargeAddressAware> </PropertyGroup>
Comments