bwe*_*rks 2 powershell xpath operators csproj select-xml
我正在使用csproj文件,我正在尝试编写一个cmdlet来提取项目文件引用的所有文件.这将包括所有Compile,EmbeddedResource,Resource,Content和None元素(更重要的是,它们的@Include值),但我特别想要将引用元素排除在它们引用的dll之外,这些对我来说并不重要.
我没有太多的经验,但我认为我想要的xpath表达式看起来像这样
$projectFile | Select-Xml -namespace @{msb="http://schemas.microsoft.com/developer/msbuild/2003"} -xpath "//msb:ItemGroup/*[not(self::node() = msb:Reference) and @Include]"
Run Code Online (Sandbox Code Playgroud)
但是,只要我尝试引入self :: node(),我的表达式就不会返回任何节点.我不是100%确定self :: node()是正确的方法.知道我会改变什么以使其返回,概念上,"所有包含属性的属性值都不是作为ItemGroup元素的子元素的Reference元素吗?"
小智 5
我认为你需要:
//msb:ItemGroup/*[not(self::msb:Reference)]/@Include
Run Code Online (Sandbox Code Playgroud)
含义: 除了整个文档中的任何子项的所有Include属性msb:ItemGroupmsb:Reference
| 归档时间: |
|
| 查看次数: |
1035 次 |
| 最近记录: |