我可以在Visual Studio中设置LARGEADDRESSAWARE吗?

我有一个.net程序集,需要是32位,需要/ LARGEADDRESSAWARE。

我知道如何用EditBin做这个,但是我想知道在Visual Studio 2010中是否有内置的方法? 或者,有人为此写了一个MSBuild任务?

编辑:这是一个C#应用程序,所以没有链接选项伤心:(

您可以将其作为后构build任务来完成。 在“构build事件”选项卡中,input以下命令

editbin /largeaddressaware $(TargetPath) 

进入“生成后事件命令行”:

这是VS2008的情况。 我认为它应该以VS2010的相同方式工作。

在@ RouMao的答案的基础上,您可能会收到一条错误消息,说editbin无法find。 确保生成后事件命令行中的环境设置正确,方法如下:

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

另一个要理解的是,如果在项目属性中的“ 启用Visual Studio宿主进程”checkbox的“ debugging”选项卡被选中(默认),您的应用程序将无法运行LARGEADDRESSAWARE(因为vshost.exe未正确标​​记)。 取消选中该框以使用LARGEADDRESSAWAREdebugging应用程序。

这是一个NuGet软件包,它可以在您的二进制文件生成后设置LargeAddressAware: https : //github.com/KirillOsenkov/LargeAddressAware

它不需要editbin.exe,因为它有一个托pipe的应用程序来设置标志编程: https : //github.com/KirillOsenkov/LargeAddressAware/blob/master/SetLargeAddressAware/LargeAddressAware.cs