私のソリューションにはいくつかの .net プロジェクトが含まれており、そのうちの 1 つは公開しようとしている ASP.NET MVC プロジェクトです。x32 と x64 のすべての構成が正しく設定されており、いずれも AnyCPU に設定されていません。
問題:
プロジェクトを 32 ビットとして発行しようとすると、すべて問題ありませんが、64 ビット モードで発行しようとすると、次のエラーで失敗します。
Could not load file or assembly "ProjectA" or one of its dependencies.
An attempt was made to load a program with an incorrect format.
私が試して気づいたこと:
VS 2013 以降、MSbuild は VS の一部であり、以前のように .NET Framework の一部ではありません。x64 モードでソリューションを単純にビルドすると、32 ビットの msbuild"C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe"
が最初に実行され、64 ビットの msbuild が起動されます"C:\Program Files (x86)\MSBuild\12.0\Bin\amd64\MSBuild.exe"
。したがって、パブリッシュなしの通常のビルドは問題なく動作します。
しかし、私が選択publish
した場合、32 ビットの MSbuild が最初に実行され、次にc:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe
64 ビットではなく 32 ビットの aspnet_compiler が起動され、上記のエラーが発生します。
これまでに見つけた唯一の回避策は、
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe"
64ビットのもので
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe"
質問:
私の問題に対するより良い(法的)解決策はありますか?これはVSのバグのようです