0

当使用 Select-Xml 解析我的 *.csproj 时,除了从预期的输出中,我还得到一个参数的 concat。

这里发生了什么?

$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>
4

2 回答 2

2

感谢您的片段,所以现在我可以尝试自己了。

这确实有效:

$version = Get-Content -Path $projectFilePath -Raw | Select-Xml -XPath "/Project/PropertyGroup/Version"
Write-Host $version
于 2018-08-27T14:30:42.460 回答
1

你也可以这样做:

[xml]$x = get-content D:\somepath\someproject.csproj 
$x.project.propertygroup.version
于 2018-08-27T14:38:25.883 回答