質問
私は(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">
所属していません StackOverflow