Frage

Ich versuche, eine xmlpoke Aufgabe zu verwenden, um eine VS-Projektdatei zu aktualisieren (die XML). Im Projekt-root gibt es mehrere Knoten Property, Ich versuche, die ersten zu wählen. Die XML wie folgt aussieht

 <Project>
    <PropertyGroup>
    </PropertyGroup>
    <PropertyGroup>
    </PropertyGroup>
    <PropertyGroup>
    </PropertyGroup>
 </Project>

Ich verwende eine XPath von //Project/PropertyGroup[1] den ersten Property zu bekommen, aber ich den Fehler: „Nicht eindeutiger XPath gegeben // Projekt / Propertygroup [1]“

edit: sorry, ich habe es nicht von Bedeutung (aber es tut), Projekt einen Namespace hat. Ich habe die richtige XML mit der richtigen xmlpoke als Antwort für zukünftige Forscher.

War es hilfreich?

Lösung

Ok, vereinfachte ich die XML-Snippet oben zu viel - ich glaube, jemand dachte, hätte, wenn ich nicht hatte. Die Antwort ist, dass seit dem Projekt einen Namensraum hat, muss es wie folgt

sein
   <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>

Als Referenz die Tag-Projekt sieht wie folgt aus:

  <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top