32ビットである必要があり、/ LARGEADDRESSAWAREである必要がある.netアセンブリがあります。
EditBinでこれを行う方法は知っていますが、Visual Studio 2010に組み込みの方法があるのでしょうか?または、このために誰かがMSBuildタスクを作成しましたか?
編集:これはC#アプリ用であるため、残念ながらリンカーオプションはありません:(
ビルド後のタスクとして実行できます。 [ビルドイベント]タブで、次のコマンドを入力します
editbin /largeaddressaware $(TargetPath)
「ビルド後のイベントコマンドライン:」
これはVS2008の場合です。 VS2010でも同じように機能するはずです。
@RouMaoの回答に基づいて、editbinが見つからないというエラーメッセージが表示される場合があります。次のように指定して、ビルド後のイベントコマンドラインの環境が適切にセットアップされていることを確認します。
call "$(VS100COMNTOOLS)..\tools\vsvars32.bat"
editbin /largeaddressaware $(TargetPath)
理解すべきもう1つのことは、(プロジェクトプロパティの[LARGEADDRESSAWARE
]タブの下で)Enable the Visual Studio hosting process
チェックボックスがオンになっている場合(これはデバッグモードでDebug
対応アプリケーションが実行されないvshost.exe
に適切なフラグが設定されていないため、デフォルトです。
LARGEADDRESSAWARE
を使用してアプリケーションをデバッグするには、このボックスをオフにします。
これは、ビルド後にバイナリにLargeAddressAwareを設定できるNuGetパッケージです。 https://github.com/KirillOsenkov/LargeAddressAware
プログラムでフラグを設定するマネージアプリがあるため、editbin.exeは不要です。 https://github.com/KirillOsenkov/LargeAddressAware/blob/master/SetLargeAddressAware/LargeAddressAware.cs
Update:これを使用するには、パッケージをインストールし、このプロパティを.csprojに追加します。
<PropertyGroup> <LargeAddressAware>true</LargeAddressAware> </PropertyGroup>