Visual Studio 2013 llama a 32 bit aspnet_compiler en lugar de 64 bit uno
Mi solución contiene algunos proyectos .net y uno de ellos es un proyecto MVC de ASP.NET, que estoy intentando publicar. Todas las configuraciones están configuradas correctamente, x32 y x64, ninguna de ellas está configurada en AnyCPU.
Problema:
Si trato de publicar el proyecto como 32 bits, todo está bien, pero intentar publicar en modo de 64 bits falla con un 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.
Lo que he probado y notado:
Desde VS 2013, MSbuild es parte de VS y no de .NET Framework como antes. Si simplemente compilo la solución en modo x64, el msbuild de 32 bits"C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe"
Es runnig primero y lanza el msbuild de 64 bits."C:\Program Files (x86)\MSBuild\12.0\Bin\amd64\MSBuild.exe"
Así que la construcción normal sin publicar funciona bien.
Pero si elijopublish
, el MSbuild de 32 bits se ejecuta primero y luego inicia el compilador aspnet de 32 bitsc:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe
y NO el de 64 bits, lo que provoca un error que mencioné anteriormente.
La única solución que he encontrado hasta ahora es reemplazar la
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe"
con uno de 64 bits
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe"
Pregunta:
¿Hay alguna solución mejor (legal) para mi problema? Esto parece un error en VS