64bitOSでAnyCPUでコンパイルした32bitプロセスを動かす
AnyCPUでビルドした場合、動作する環境によってプロセスのビット数がことなる。
  • 64ビットOSでは64ビットプロセスとして動作する。
  • 32ビットOSでは32ビットプロセスとして動作する。


では、64ビットで32ビットプロセスを動かすにはどうしたらいいか?
これは、CorFlagsコマンドを使う。

VisualStudio2008の場合は以下にある。
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\CorFlags.exe

VisualStdioをインストールしたときにプログラムファイルに記述されるコマンドプロンプトではパスが通っているのでそこからおこなうといい。


そこで次のようなコマンドを実施する

CorFlags /32BIT+ TestR.exe

VS2012では /32BITREQ+ フラグになる。

これを関連するDLLを含めておこなう。
AnyCPUでビルドされているDLLは、ExEのプラットフォームに合わせて動作するので不要。
もしx64でビルドされていた場合は、Exeと同様に32ビットフラグを付与すること。

もし強い名称で署名をされている場合は、/Force オプションを付与すること。

CorFlags /32BIT+ /Force RDotNet.dll



[PR]
by mima_ita | 2013-11-30 03:14 | .NET
<< VisualStdio2012... twitteRを久しぶりに使用... >>



実験ですお
検索
カテゴリ
最新の記事
.NET4.5におけるasy..
at 2014-07-02 00:46
.NETでTwitterを検..
at 2014-06-29 00:49
Redmineのプラグインで..
at 2014-06-28 03:29
IO.popenのwrite..
at 2014-06-28 03:25
RedmineのWikiでU..
at 2014-06-28 03:16
以前の記事
最新のトラックバック
その他のジャンル
ブログパーツ