繁体   English   中英

LargeAddressAware Visual Studio 2015 C#

[英]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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM