LargeAddressAware Visual Studio 2015 C#
LargeAddressAware Visual Studio 2015 C#
所以今天我决定更新到 Visual Studio 2015(之前是 运行 RC 版本,没有任何困难)但现在我的项目不喜欢 /LARGEADDRESSAWARE
命令行事件。
我有一个 post-构建事件:
call "$(DevEnvDir)..\tools\vsvars32.bat"
editbin /largeaddressaware "$(TargetPath)"
但是我收到以下错误:
The command "call "C:\Program Files (x86)\Microsoft Visual Studio
14.0\Common7\IDE..\tools\vsvars32.bat" editbin /largeaddressaware "C:\...\bin\Debug\Application.exe"" exited with code 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++ 及其工具。在这里你必须在设置中的自定义下激活它:
卸载Visual Studio 2015 RC 版时出现此问题。它不会删除所有目录,因此完整发行版的安装不成功。简单的解决办法就是卸载RC版,然后重启。然后手动删除C:\Program Files (x86)\Microsoft Visual Studio 14.0目录。然后你就可以毫无问题地安装新版本了。
感谢 Hans Passant 识别此问题。
如果您将平台设置为 "Any CPU",此标志现在默认为您在 Visual Studio 2015 年设置。
见Compiling C# with Any CPU sets Application can handle large (>2GB) addresses。
我的问题是,我首先从错误的位置调用 vcvarsall.bat
。我已经升级到 Visual Studio 2017,vcvarsall.bat
已经搬家了。 (所以 EditBin.exe
。现在有 4 个位置,尽管我改为使用路径中的任何位置。)修复它,解决问题。这是我的 post-build 文件供您查看。
:: 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
所以今天我决定更新到 Visual Studio 2015(之前是 运行 RC 版本,没有任何困难)但现在我的项目不喜欢 /LARGEADDRESSAWARE
命令行事件。
我有一个 post-构建事件:
call "$(DevEnvDir)..\tools\vsvars32.bat"
editbin /largeaddressaware "$(TargetPath)"
但是我收到以下错误:
The command "call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE..\tools\vsvars32.bat" editbin /largeaddressaware "C:\...\bin\Debug\Application.exe"" exited with code 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++ 及其工具。在这里你必须在设置中的自定义下激活它:
卸载Visual Studio 2015 RC 版时出现此问题。它不会删除所有目录,因此完整发行版的安装不成功。简单的解决办法就是卸载RC版,然后重启。然后手动删除C:\Program Files (x86)\Microsoft Visual Studio 14.0目录。然后你就可以毫无问题地安装新版本了。
感谢 Hans Passant 识别此问题。
如果您将平台设置为 "Any CPU",此标志现在默认为您在 Visual Studio 2015 年设置。
见Compiling C# with Any CPU sets Application can handle large (>2GB) addresses。
我的问题是,我首先从错误的位置调用 vcvarsall.bat
。我已经升级到 Visual Studio 2017,vcvarsall.bat
已经搬家了。 (所以 EditBin.exe
。现在有 4 个位置,尽管我改为使用路径中的任何位置。)修复它,解决问题。这是我的 post-build 文件供您查看。
:: 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