20

所以今天我决定更新到 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 退出

有什么想法吗?

4

4 回答 4

51

我将 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++ 工具选项。默认情况下,VS2015 只安装 C# 和 VB.net,但不安装 C++ 及其工具。在这里,您必须在设置中的自定义下激活它:

在此处输入图像描述

于 2015-07-22T16:06:35.923 回答
8

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

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

于 2016-01-20T17:04:56.800 回答
3

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

感谢 Hans Passant 确定了这个问题。

于 2015-07-23T08:44:20.473 回答
2

我的问题是,我首先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
于 2017-05-24T19:31:36.723 回答