Utiliser MSBuild 3.5 avec Visual Studio 2010
Comment puis-je la force de Visual Studio 2010 pour l'utilisation de MSBuild 3.5 au lieu de la nouvelle 4.0 ?
J'ai une question similaire, stackoverflow.com/questions/4895872/...
OriginalL'auteur Egor Pavlikhin | 2010-05-05
Vous devez vous connecter pour publier un commentaire.
Je pense que vous ne pouvez pas changer la version de MSBuild utilisées dans Visual Studio sans un sale hack.
ToolsVersion
La version de MSBuild les tâches, les objectifs et les outils utilisés par MSBuild est déterminé par le ToolsVersion attribut dans le fichier de projet.
Problème : Si vous modifiez le ToolsVersion manuellement à 3,5 sur le fichier de projet, Visual Studio 2010 va mettre automatiquement à jour le fichier de projet ToolsVersion à 4,0
Le hack
La solution est de définir votre projet ToolsVersion à 3,6 (ou quel que soit le ou 4.0 si vous vraiment souhaitez remplacer MSBuild 4.0) et ensuite dans le registre de créer la clé suivante :
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\3.6
MSBuildToolsPath
.NET Framework 3.5 Install Path
(C:\Windows\Microsoft.NET\Framework\v3.5)Sur la machine où ToolsVersion est inconnue, la valeur par défaut ToolsVersion sera utilisé.
Plus d'informations sur personnalisée d'outils de définition.
Le hack a l'air intéressant... mais faudrait le faire sur tous les ordinateurs qui vont construire le projet? Pas très bon pour une équipe de projet sans doute aussi besoin d'ajouter hack pour le serveur de build TFS, je suppose. Pourrait être utile lors d'une migration de cadre de cadre.. peut l'essayer
OriginalL'auteur Julien Hoarau
Pourquoi voulez-vous que? Est-il rien de 3,5 capable, mais 4.0 pas?
Si votre souci est que lorsque le code est vérifié pour une machine qui n'a pas .NET 4 installé, vous pouvez utiliser MSBuild 3,5 à construire des projets (csproj). Vous devez créer un fichier de solution pour MSBuild 3.5 car il n'accepte pas la sln fichier de VS2010.
Quand MSBuild est livré à travers ToolsVersion="4.0" il va la traiter comme ToolsVersion="3.5" et puis tout continue de fonctionner.
Mon projet open source #SNMP utilise ces tours de sorte que le code source peut être construit .NET 4, .NET 3.5 et Mono.
pourquoi le projet de ne pas travailler avec MSBUILD 4.0?
OriginalL'auteur Lex Li
Vous pouvez cibler les différentes versions du runtime à partir de la fenêtre de propriétés du projet:
le texte d'alt http://img14.imageshack.us/img14/3051/vstargetframework.png
Pas sûr si la modification des règles de génération d'utiliser MsBuild 3.5 pour C#/VB.NET des cibles est une bonne idée.
(Ci-dessous le changement est inutile. À l'aide de .NET 4 cibles fichier n'a pas de problème du tout.)
Modifier Essayer d'ouvrir le projet c# avec un éditeur de texte et modifier cette ligne:
:
Voir modifier, qui peut les aider. Pas sûr de ce qui va se passer pour le système de références, peut-être besoin de point de ceux v3.5 de la assembies si elles ont été convertis au cours de Vs2008->VS2010 de conversion.
Cela ne changera pas le réel de l'exécutable utilisé.
intéressant....
Visual Studio 2010 a également des références .NET 4 assemblages, mais il n'a rien à voir avec les résultats de compilation droit? Alors pourquoi vous ne pouvez pas utiliser MSBuild 4?
OriginalL'auteur Igor Zevaka