Ich versuche, ein Projekt mit MSBuild (v4.0) auf einer 64-Bit-Maschine zu erstellen. Aus irgendeinem Grund versucht MSBuild, eine 32-Bit-Erweiterung zu laden, und ich kann nicht herausfinden, warum. Ich habe das Problem auf den kleinsten Satz reduziert, um das Problem zu demonstrieren.Warum lädt das 64-Bit-MSBuild 32-Bit-Erweiterungen?
die folgende MSBuild-Projektdatei:
<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>
ich diese Ausgabe:
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 offensichtlich weiß um die 32-Bit- und 64-Bit-Erweiterungen Pfad, und aus dem binären Pfad scheint es klar, dass Ich führe die 64-Bit MSBuild.exe, aber aus irgendeinem Grund glaubt, dass Erweiterungen von Program Files (x86)
anstelle von Program Files
geladen werden sollten. Das verursacht mir Probleme, da ich eine Erweiterung habe, die ich laden muss, die korrekt in einem 32bit/64bit-Prozess geladen werden muss, und es wird nicht geladen (MSBuild versucht, die 32-Bitversion in einem 64-Bitprozess zu laden).
Warum?