BuildManager, um eine andere Version von MSBuild zu verwenden

Mit dem folgenden Code wird versucht, eine Projektmappe mithilfe von programmgesteuert zu erstellenBuildManager:

ProjectCollection pc = new ProjectCollection();
pc.DefaultToolsVersion = "12.0";
pc.Loggers.Add(fileLogger);
Dictionary<string, string> globalProperty = new Dictionary<string, string>();
BuildRequestData buildRequest = new BuildRequestData(solutionName, globalProperty, null, new[] { "Build" }, null);

BuildParameters buildParameters = new BuildParameters(pc)
{
    DefaultToolsVersion = "12.0",
    OnlyLogCriticalEvents = false,
    DetailedSummary = true,
    Loggers = new List<Microsoft.Build.Framework.ILogger> { fileLogger }.AsEnumerable()
};

var result = BuildManager.DefaultBuildManager.Build(buildParameters, buildRequest);

Wenn ich diesen Code ausführe (er erstellt übrigens nichts), kann ich den folgenden Compiler erkennencsc.exe wird verwendet, zusätzlich zu einer bestimmten Version vonwinmdexp.exe:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Csc.exe
ExportWindowsMDFile:
    C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\winmdexp.exe 

Wenn ich jedoch eine Lösung mit VS IDE erfolgreich erstelle, werden die folgenden Informationen angezeigt:

C:\Program Files (x86)\MSBuild\12.0\bin\Csc.exe
ExportWindowsMDFile:
    C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\winmdexp.exe

Warum passiert das in meinem Code und wie kann ich es ändern?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage