C#で、AnyCPUでビルドしたプログラムを32Bitで動かす方法

OS:64bit C# Target:.net6.0 VisualStudio2022にて、AnyCPUでビルドをします。
(作ったexeを、ConsoleApp1.exe とします)
VisualStudio 2019では、32bitを優先とかそんな設定があったのですが、
(なんか、設定も無視されているような動きをしていましたが)
VisualStudio 2022の.net6.0だと、無くなっていますね。

どうも、.net5.0の頃から、AnyCPUでビルドしたプログラムを32bitで動かすには、
32bitのdotnet.exe を呼び出して動かせば良いようです。

まず、dotnet sdkのx86版をインストールしておきます。
そして、以下のコマンドで起動します。

CD \Users\username\source\repos\ConsoleApp1\bin\Release\net6.0
"c:\Program Files (x86)\dotnet\dotnet.exe" ConsoleApp1.dll

dotnet.exeのパスに、空白があるので、”で囲う必要がります。
また、実行するターゲットは、exeではなく、dllを指定するみたいです。
(仕組みは良く分かっていない。プログラムの実体はdllなんですかね)

とりあえず、これで動いて、DotnetBenchmarkを32bitで動かすのも成功したので満足です。

投稿日:
カテゴリー: C#

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です