LargeAddressAware Visual Studio 2015 С#

Итак, сегодня я решил, что обновляюсь до Visual Studio 2015 (ранее не запускал RC-версию без каких-либо трудностей), но теперь моему проекту не нравится событие командной строки largeaddressaware.

У меня есть событие после сборки:

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

Однако я получаю следующую ошибку:

Команда "вызов" C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE..\tools\vsvars32.bat "editbin/largeaddressaware" C: \...\bin\Debug\Application.exe "" вышел с кодом 9009

Любые мысли?

Ответ 1

Проблема была устранена при удалении версии Visual Studio 2015 RC. Он не удаляет все каталоги, поэтому установка полной версии не выполняется. Простое решение - удалить версию RC и перезапустить. Затем вручную удалите каталог C:\Program Files (x86)\Microsoft Visual Studio 14.0. Затем вы можете установить новую версию без каких-либо проблем.

Credit Hans Passant для определения этой проблемы.

Ответ 2

Я называю cmd script как PostBuildEvent:

IF  EXIST  "%VS140COMNTOOLS%"  CALL  "%VS140COMNTOOLS%vsvars32.bat"
IF  EXIST  "%VS120COMNTOOLS%"  CALL  "%VS120COMNTOOLS%vsvars32.bat"
IF  EXIST  "%VS110COMNTOOLS%"  CALL  "%VS110COMNTOOLS%vsvars32.bat"
IF  EXIST  "%VS100COMNTOOLS%"  CALL  "%VS100COMNTOOLS%vsvars32.bat"

editbin.exe /LARGEADDRESSAWARE MyApp.exe

Он проверяет переменную среды в соответствии с установленным VS (первые 2015, следующий 2013, следующий 2012 и, наконец, 2010), и теперь все пути в порядке.

Если он все еще не может найти .exe, убедитесь, что выбран параметр С++ Tools в установщике. По умолчанию VS2015 устанавливает только С# и VB.net, но не С++ с его инструментами. Здесь вы должны активировать его под заказ в настройке:

введите описание изображения здесь

Ответ 4

Моя проблема с этим, что я сначала вызывал vcvarsall.bat из неправильного местоположения. Я обновился до Visual Studio 2017, и vcvarsall.bat переместился. (Так было EditBin.exe. В настоящее время есть 4 местоположения, хотя я изменил использование того, что было на пути.) Исправлено это, исправлена ​​проблема. Здесь мой пост файл сборки для вашей цели.

:: Install C++ tools to have these installed

:: build for 32 bit     
:: VS 2012 call "$(DevEnvDir)..\..\vc\vcvarsall.bat" x86 

:: build for 64
:: VS 2012 call "$(DevEnvDir)..\..\vc\vcvarsall.bat" amd64
:: VS 2017
call "$(DevEnvDir)..\..\VC\Auxiliary\Build\vcvarsall.bat" amd64

:: "$(DevEnvDir)..\..\vc\bin\EditBin.exe" "$(TargetPath)"  /LARGEADDRESSAWARE
EditBin "$(TargetPath)"  /LARGEADDRESSAWARE