Select-Xml возвращает имя файла

При синтаксическом анализе моего *.csproj с использованием Select-Xml, помимо ожидаемого результата, я также получаю конкат параметра.

Что здесь происходит?

$version = Select-Xml -Path $projectFilePath -XPath "/Project/PropertyGroup/Version"
Write-Host $version
Start-Sleep -Seconds 5
EXIT

это возвращается

1.0.1:D:\somepath\someproject.csproj

вместо

1.0.1

фрагмент csproj

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFramework>netstandard1.3</TargetFramework>
    </PropertyGroup>
    <PropertyGroup>
        <GeneratePackageOnBuild>false</GeneratePackageOnBuild>
        <AssemblyVersion>1.0.0.0</AssemblyVersion>
        <Version>1.0.1</Version>
    </PropertyGroup>
</Project>

2 ответа

Решение

Спасибо за фрагмент, так что теперь я могу попробовать себя.

Это работает:

$version = Get-Content -Path $projectFilePath -Raw | Select-Xml -XPath "/Project/PropertyGroup/Version"
Write-Host $version

Вы могли бы сделать это также:

[xml]$x = get-content D:\somepath\someproject.csproj 
$x.project.propertygroup.version
Другие вопросы по тегам