Puis-je configurer LARGEADDRESSAWARE à partir de Visual Studio?

j'ai un assemblage .net qui doit être 32 bits et doit être /LARGEADDRESSAWARE.

je sais comment le faire avec EditBin, mais je me demande s'il y a une manière intégrée dans Visual Studio 2010? Ou bien, est-ce que quelqu'un a écrit une tâche MSBuild pour cela?

Edit: C'est pour une application en C#, donc pas de linker options malheureusement :(

59
demandé sur Michael Stum 2010-04-08 09:38:23

3 réponses

vous pouvez le faire comme une tâche de Post-construction. Dans l'onglet "Build Events", mettez la commande suivante

editbin /largeaddressaware $(TargetPath)

dans la ligne de commande" Post-build event: "

C'est le cas pour VS2008. Je pense que cela devrait fonctionner de la même manière pour VS2010.

49
répondu Yi Zhao 2010-04-08 08:15:04

en S'appuyant sur la réponse de @RouMao, vous pouvez obtenir un message d'erreur disant que editbin ne peut pas être trouvé. Assurez-vous que l'environnement de la ligne de commande post-build event est configuré correctement en spécifiant ce qui suit:

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

une autre chose à comprendre est que si sous l'onglet débogage dans les propriétés de votre projet que le activer le processus d'hébergement de studio visuel case à cocher est cochée (par défaut), votre application ne fonctionnera pas avec LARGEADDRESSAWARE (parce que le vshost.exe n'est pas correctement indiqué). Décochez cette case pour déboguer votre application en utilisant LARGEADDRESSAWARE.

95
répondu Michael 2013-07-09 22:17:38

c'est un paquet NuGet qui peut définir LargeAddressAware sur votre binaire après qu'il soit construit: https://github.com/KirillOsenkov/LargeAddressAware

Il ne nécessite pas editbin.exe comme il a géré application pour configurer l'indicateur du programme: https://github.com/KirillOsenkov/LargeAddressAware/blob/master/SetLargeAddressAware/LargeAddressAware.cs

mise à Jour: Utiliser il suffit d'installer le paquet et ajouter cette propriété dans votre .csproj:

<PropertyGroup> <LargeAddressAware>true</LargeAddressAware> </PropertyGroup>

7
répondu Kirill Osenkov 2017-11-24 19:49:55