LargeAddressAware Visual Studio 2015 C#

所以今天我决定更新到Visual Studio 2015(以前运行RC版本没有任何困难),但现在我的项目不喜欢largeaddressaware命令行事件。

我有一个后期构建事件:

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

但是我收到以下错误:

命令“call”C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE .. \ tools \ vsvars32.bat“editbin / largeaddressaware”C:\ … \ bin \ Debug \ Application.exe“ “退出代码9009

有什么想法吗?

我将cmd脚本称为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,请确保选中安装程序中的C ++ Tools选项。 默认情况下,VS2015只安装C#和VB.net,而不安装C ++及其工具。 在这里你必须在设置中的自定义下激活它:

在此处输入图像描述

如果将平台设置为“任何CPU”,则默认情况下此标记现在在Visual Studio 2015中为您设置。

请参阅使用任何CPU集编译C#应用程序可以处理大(> 2GB)地址 。

卸载Visual Studio 2015 RC版本时会导致此问题。 它不会删除所有目录,因此安装完整版本不成功。 简单的解决方案是卸载RC版本并重新启动。 然后手动删除C:\ Program Files(x86)\ Microsoft Visual Studio 14.0目录。 然后,您可以安装新版本,没有任何问题。

感谢Hans Passant确定此问题。

我的问题是,我vcvarsall.bat错误的位置调用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