我正在学习PowerShell。现在,我正在尝试从.csproj文件中获取Version
元素值。 .csproj文件的XML如下所示:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<Version>1.2.3</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MyLibrary" Version="3.2.1" />
</ItemGroup>
</Project>
为了尝试从此XML获取
Version
元素值,我编写了以下PowerShell脚本:$xml = [xml](Get-Content ./MyApp.csproj)
Write-Host "xml: " $xml
$version = $xml.Project.PropertyGroup.Version
Write-Host "version: $version"
当我运行此脚本时,会看到以下内容:
xml:
version:
注意,项目XML或版本均未写入。起初,我以为我是错误地引用了.csproj。我有意删除了结尾处的“j”,并引发了错误。因此,我假设我正在正确加载.csproj内容。但是,我相信我无法在PowerShell脚本中正确解析XML。
如何从PowerShell脚本中的.csproj值获取
Version
? 最佳答案
如前所述,Write-Host
仅输出,无法重定向。除此之外,我无法复制它。这对我有用:
$xml = [Xml] (Get-Content .\MyApp.csproj)
$version = [Version] $xml.Project.PropertyGroup.Version
(强制转换为
[Version]
可以更轻松地获取版本的各个部分,与其他版本进行比较,等等。)关于c# - PowerShell-从.csproj文件获取版本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52297040/