Visual Studio 2013 wywołuje 32-bitowy aspnet_compiler zamiast 64-bitowy
Moje rozwiązanie zawiera kilka projektów .net, a jednym z nich jest projekt ASP.NET MVC, który próbuję opublikować. Wszystkie konfiguracje są ustawione poprawnie, x32 i x64, inne z nich nie są ustawione na AnyCPU.
Problem:
Jeśli próbuję opublikować projekt jako 32-bitowy, wszystko jest w porządku, ale próba opublikowania w trybie 64-bitowym kończy się niepowodzeniem z błędem:
Could not load file or assembly "ProjectA" or one of its dependencies.
An attempt was made to load a program with an incorrect format.
Co próbowałem i zauważyłem:
Od VS 2013, MSbuild jest częścią VS, a nie .NET Framework jak poprzednio. Jeśli po prostu zbuduję rozwiązanie w trybie x64, 32-bitowy msbuild"C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe"
jest uruchamiany jako pierwszy i uruchamia 64-bitowy msbuild"C:\Program Files (x86)\MSBuild\12.0\Bin\amd64\MSBuild.exe"
Więc normalna kompilacja bez publikacji działa dobrze.
Ale jeśli wybiorępublish
, 32-bitowy MSbuild działa jako pierwszy, a następnie uruchamia 32-bitowy aspnet_compilerc:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe
a NIE 64-bitowy, co powoduje błąd, o którym wspomniałem powyżej.
Jedynym obejściem, jakie znalazłem do tej pory, jest zastąpienie
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe"
z 64 bitowym
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe"
Pytanie:
Czy jest jakieś lepsze (prawne) rozwiązanie mojego problemu? To wygląda jak błąd w VS