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.

Était-ce utile?

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">
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top