XmlPoke et nœuds uniques
Question
Je suis en train d'utiliser une tâche de xmlpoke mettre à jour un fichier de projet VS (qui est XML). Dans la racine du projet, il y a plusieurs nœuds PropertyGroup, je suis en train de choisir le premier. Le XML ressemble à ceci
<Project>
<PropertyGroup>
</PropertyGroup>
<PropertyGroup>
</PropertyGroup>
<PropertyGroup>
</PropertyGroup>
</Project>
J'utilise un XPath de //Project/PropertyGroup[1]
pour obtenir la première PropertyGroup, mais je reçois l'erreur: « XPath non-unique donné // Projet / PropertyGroup [1] »
edit: désolé, je ne pensais pas qu'il importait (mais elle), le projet a un espace de noms. Je mets le XML correct avec le xmlpoke correct comme réponse pour les chercheurs futurs.
La solution
Ok, j'ai simplifié l'extrait ci-dessus XML trop - Je pense que quelqu'un aurait pensé à elle si je n'avais pas. La réponse est que depuis projet a un espace de noms, il doit être comme ceci
<xmlpoke file="project_file.csproj" value="v4.0" xpath="//x:Project/x:PropertyGroup[1]/x:TargetFrameworkVersion">
<namespaces>
<namespace prefix="x" uri="http://schemas.microsoft.com/developer/msbuild/2003" />
</namespaces>
</xmlpoke>
Pour référence, la balise projet ressemble à ceci:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">