O Visual Studio 2013 chama aspnet_compiler de 32 bits em vez de 64 bits um
Minha solução contém alguns projetos .net e um deles é um projeto ASP.NET MVC, que estou tentando publicar. Todas as configurações estão definidas corretamente, x32 e x64, e nenhuma delas está configurada como AnyCPU.
Problema:
Se eu tentar publicar o projeto como 32 bits, está tudo bem, mas tentar publicar no modo de 64 bits falha com um erro:
Could not load file or assembly "ProjectA" or one of its dependencies.
An attempt was made to load a program with an incorrect format.
O que eu tentei e notei:
Desde o VS 2013, o MSbuild faz parte do VS e não do .NET Framework como antes. Se eu simplesmente construir a solução no modo x64, o msbuild de 32 bits"C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe"
é runnig primeiro e lança o msbuild de 64 bits"C:\Program Files (x86)\MSBuild\12.0\Bin\amd64\MSBuild.exe"
Então normal construir sem publicar funciona muito bem.
Mas se eu escolherpublish
, o 32bit MSbuild está sendo executado primeiro e, em seguida, ele lança o aspnet_compiler de 32 bitsc:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe
e NÃO o de 64 bits, que causa um erro que mencionei acima.
A única solução que encontrei até agora é substituir o
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe"
com um de 64 bits
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe"
Questão:
Existe alguma solução melhor (legal) para o meu problema? Isso parece um bug no VS