C#からPowerShellを実行した時に32bitプロセスで動作するPowerShellで実行されていたのですが
原因については初歩的なことでした…
原因
VisualStudioなどでプロジェクトのプロパティを確認した所、
「32ビットを優先」にチェックが入っていました。
このチェックを外すことで64bitプロセスで動作するPowerShellで実行することができました。
検証
実行中のプロセスが32bitか64bitかを判別するには下記のコマンドを使用します。
[System.Environment]::Is64BitProcess
検証結果
64bit環境において各設定値での実行プロセスのパターンを下記にまとめました。
32ビットで優先 | プラットフォーム ターゲット |
実行プロセス |
---|---|---|
○ | Any CPU | 32bit |
– | Any CPU | 64bit |
– | x86 | 32bit |
– | x64 | 64bit |
余談
どうでも良いですが、32bitプロセスで動作している時にフルパス指定で64bitプロセスで動作するPowerShellを実行しても
32bitプロセスで動作するPowerShellが実行されるんですね…