My solution contains some .net projects and one of them is a ASP.NET MVC project, which I'm trying to publish. All configurations are set correctly, x32 and x64, non of them is set to AnyCPU.
Problem:
If I try to publish the project as 32bit, everything is fine, but trying to publish in 64 bit mode fails with an error:
Could not load file or assembly "ProjectA" or one of its dependencies.
An attempt was made to load a program with an incorrect format.
What I've tried and noticed:
Since VS 2013, MSbuild is a part of VS and not of .NET Framework as before. If I simply build the solution in x64 mode, the 32 bit msbuild "C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe"
is runnig first and it launches the 64bit msbuild "C:\Program Files (x86)\MSBuild\12.0\Bin\amd64\MSBuild.exe"
So normal build without publish works just fine.
But, if I choose publish
, the 32bit MSbuild is running first and then it launches the 32 bit aspnet_compiler c:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe
and NOT the 64 bit one, which causes an error which I mentioned above.
The only workaround I've found until now is to replace the
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe"
with a 64 bit one
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe"
Question:
Is there any better (legal) solution for my problem? This looks like a bug in VS