à l'aide de MSBuild avec VS2010 généré vcxproj fichier en tant que cible d'erreur MSB4066 (“attribut Label de l'élément est non reconnu”)
À l'aide de VS2010, j'ai créé un Win32 C++ application de console appelée "TfsBuildTestTarget". C'est juste la console par défaut de l'application créée par l'assistant. Je n'ai pas fait de code ou de modifications de projet, et il s'appuie sur ok dans VS2010 comme prévu.
Puis j'ai créé un fichier projet MSBUILD comme suit:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Build">
<MSBuild Projects="TfsBuildTestTarget.sln" Targets="TfsBuildTestTarget" Properties="Configuration=Release;Platform=Win32"/>
</Target>
</Project>
Quand je lance MSBUILD sur ce fichier de projet, j'obtiens l'erreur suivante:
"c:\dev\TfsBuildTestTarget\testBuild.proj"
(cible par défaut) (1 ) ->
"c:\dev\TfsBuildTestTarget\TfsBuildTestTarget.sln"
(TfsBuildTe stTarget cible) (2) ->
(TfsBuildTestTarget cible) ->
c:\dev\TfsBuildTestTarget\TfsBuildTestTarget\TfsBuildTestTarget.vcxproj(3,14):
erreur MSB4066: L'attribut "Label" dans l'élément non reconnu.
Référencé dans la ligne, dans le (VS-généré) vcxproj fichier ressemble à ceci:
<ItemGroup Label="ProjectConfigurations">
La de référence pour la MSBuild élément élément ne comprend pas un attribut Label.
Ce qui se passe ici? Pourquoi est-VS2010 générer des fichiers de projet qui ne semble pas être compatible avec MSBuild? Est-il un moyen pour moi de construire cette solution dans le cadre d'un projet MSBuild sans manuellement peaufiner le XML?
OriginalL'auteur Eric | 2011-02-24
Vous devez vous connecter pour publier un commentaire.
Assurez-vous d'utiliser l' .NET 4.0 version de MSBuild.
Si vous utilisez l' .NET version 3.5 de MSBuild contre un VS2010 solution qui comprend un fichier vcxproj, vous obtiendrez cette erreur.
J'ai fait une application console c++ comme vous l'avez indiqué et il a couru en utilisant à la fois .NET 3.5 et .NET 4.0 MSBuild versions. J'ai obtenu l'erreur à l'aide de 3.5 et il a travaillé à l'aide de 4.0.
L'attribut Label est nouveau .NET 4.0. Il peut être ajouté à ItemGroup, PropertyGroup, de la Cible, et d'autres éléments. L'attribut label n'est pas mentionné dans l'aide en ligne pour msbuild, mais défini, il int msbuild 4.0 fichiers de schéma.
OriginalL'auteur Brian Walker
J'ai été à l'aide de la "Ouvrir l'Invite de Commande Visual Studio (2008)" l'entrée du Menu de Démarrage de construire, et il m'a donné le même message d'erreur, mais lorsque je suis passé à "Ouvrir l'Invite de Commande Visual Studio (2010)", j'ai eu le problème miracolously résolu.
OriginalL'auteur sergiol