PowerShell - Получить версию из файла .csproj - PullRequest
0 голосов
/ 12 сентября 2018

Я изучаю PowerShell.Сейчас я пытаюсь получить значение элемента Version из файла .csproj.XML-файл .csproj выглядит следующим образом:

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

В попытке получить значение элемента Version из этого XML, я написал следующий скрипт 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.Однако я считаю, что неправильно анализирую XML в своем скрипте PowerShell.

Как получить Version из значения .csproj в скрипте PowerShell?

1 Ответ

0 голосов
/ 12 сентября 2018

Как отмечалось, Write-Host только для вывода и не может быть перенаправлен.Кроме этого, я не могу воспроизвести это.Это работает для меня:

$xml = [Xml] (Get-Content .\MyApp.csproj)
$version = [Version] $xml.Project.PropertyGroup.Version

(приведение к [Version] облегчает получение отдельных частей версии, сравнение с другими версиями и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...