Verwenden von MSBuild 3.5 mit Visual Studio 2010
Wie kann ich die Kraft von Visual Studio 2010 verwenden von MSBuild 3.5 statt die neue 4.0 ?
- Ich habe eine ähnliche Frage stackoverflow.com/questions/4895872/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, man kann es nicht ändern, die version von MSBuild verwendet, in Visual Studio ohne ein dirty hack.
ToolsVersion
Version von MSBuild-Aufgaben, Ziele und Werkzeuge verwendet, die von MSBuild wird bestimmt durch die ToolsVersion - Attribut in der Projektdatei.
Problem : Wenn Sie das ToolsVersion manuell zu 3,5 auf der Projekt-Datei in Visual Studio 2010 wird automatisch aktualisieren Sie die project-Datei ToolsVersion 4.0
Der hack
Die Lösung ist, um Ihr Projekt ToolsVersion-3.6 (oder 4.0 oder was auch immer, wenn Sie wirklich überschreiben möchten MSBuild 4.0) und dann in die registry und erstellen Sie den folgenden Schlüssel :
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\3.6
MSBuildToolsPath
.NET Framework 3.5 Install Path
(C:\Windows\Microsoft.NET\Framework\v3.5)Auf der Maschine, wo ToolsVersion unbekannt ist, wird die standardmäßige ToolsVersion verwendet werden.
Mehr Informationen auf custom-toolset definition.
Warum willst du das? Gibt es etwas, 3.5-fähig, aber 4.0 nicht?
Wenn Ihr echte Sorge ist, dass wenn der code ausgecheckt ist eine Maschine, die nicht haben .NET 4 installiert ist, können Sie MSBuild 3.5 zum erstellen der Projekte (csproj). Sie benötigen eine Lösung zu schaffen Datei MSBuild 3.5 als es nicht akzeptieren, die sln-Datei des VS2010.
Wenn MSBuild kommt über ToolsVersion="4.0" wird es behandelt, als ToolsVersion="3.5" und dann alles weiter zu arbeiten.
Meine open-source-Projekt #SNMP nutzt solche tricks, so dass der source-code gebaut werden kann, auf .NET 4, .NET 3.5 und Mono.
Können Sie auf verschiedene Versionen der runtime aus der Projekt-Eigenschaften dialog:
alt-text http://img14.imageshack.us/img14/3051/vstargetframework.png
Nicht sicher, ob das ändern der build Regeln zum verwenden von MsBuild 3.5 für C#/VB.NETTO-Ziele ist eine gute Idee.
(Die unten ändern, ist unnötig. Mit .NET 4 targets-Datei hat überhaupt kein problem.)
Bearbeiten Versuchen, öffnen Sie die c# - Projekt mit einem text-editor und ändern Sie diese Zeile:
zu diesem: