質問

私は(XMLで)VSプロジェクトファイルを更新するために、xmlpokeタスクを使用しようとしています。プロジェクトのルートでは、複数のPropertyGroupノードが存在し、私は最初のものを選択しようとしています。この

のようなXMLのルックス
 <Project>
    <PropertyGroup>
    </PropertyGroup>
    <PropertyGroup>
    </PropertyGroup>
    <PropertyGroup>
    </PropertyGroup>
 </Project>

私が最初にPropertyGroupを取得するために//Project/PropertyGroup[1]のXPathを使用していますが、私はエラーを取得:「非ユニークのXPath与え//プロジェクト/ PropertyGroup [1]」

編集:申し訳ありませんが、私はそれが重要だっ思いませんでした(しかし、それはありません)、プロジェクトは名前空間を持っています。私は、将来のサーチャーのための答えとして正しいxmlpokeで正しいXMLを入れます。

役に立ちましたか?

解決

[OK]を、私はあまり上のXMLスニペットを簡素化 - 私がいなかった場合、誰かがそれを考え出したと思います。答えは、プロジェクトの名前空間を持っているので、それはこの

のようにする必要があるということです
   <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>

参考までに、このようなプロジェクトのタグになります。

  <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top