Estoy intentando construir un proyecto usando MSBuild (v4.0) en una máquina de 64 bits. Por alguna razón, MSBuild está intentando cargar una extensión de 32 bits, y no puedo entender por qué. Reduje el problema al conjunto más pequeño para demostrar el problema.¿Por qué la MSBuild de 64 bits carga extensiones de 32 bits?
Usando el siguiente archivo de proyecto de MSBuild:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<Target Name="test">
<Message Text="bin path: $(MSBuildBinPath)" />
<Message Text="extensions path: $(MSBuildExtensionsPath)" />
<Message Text="extensions path (x86): $(MSBuildExtensionsPath32)" />
<Message Text="extensions path (x64): $(MSBuildExtensionsPath64)" />
</Target>
</Project>
puedo obtener este resultado:
Microsoft (R) Build Engine Version 4.0.30319.1
[Microsoft .NET Framework, Version 4.0.30319.1]
Copyright (C) Microsoft Corporation 2007. All rights reserved.
Build started 8/27/2010 9:56:35 AM.
Project "D:\5\test.proj" on node 1 (default targets).
test:
bin path: C:\Windows\Microsoft.NET\Framework64\v4.0.30319
extensions path: C:\Program Files (x86)\MSBuild
extensions path (x86): C:\Program Files (x86)\MSBuild
extensions path (x64): C:\Program Files\MSBuild
Done Building Project "D:\5\test.proj" (default targets).
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:00.03
MSBuild obviamente sabe acerca de la ruta de 32 bits y 64 bits extensiones, y de la ruta binaria parece claro que Estoy ejecutando el MSBuild.exe de 64 bits, pero por alguna razón cree que las extensiones se deben cargar desde Program Files (x86)
en lugar de Program Files
. Esto me está causando problemas, ya que tengo una extensión que necesito cargar, que DEBE cargarse correctamente en un proceso de 32 bits/64 bits, y no se cargará (MSBuild está intentando cargar la versión de 32 bits en un proceso de 64 bits).
¿Por qué?