Исправление версии ASP Core (предварительная версия 4) с помощью AppVeyor

Как исправить проект Asp.Net Core (csproj), чтобы создавать версии двоичных файлов с помощью AppVeyor? Есть ли способ применить управление версиями отдельно для AssemblyVersion и FileVersion?

AppVeyor имеет предопределенный шаг для исправления файла AssemblyInfo.cs, но он не включен в проект, а функциональность AssemblyInfo перенесена в файл csproj, поэтому неясно, как быть с управлением версиями.

Благодарим вас за помощь!


person Valentine    schedule 24.02.2017    source источник


Ответы (1)


Поскольку .NET Core .csproj представляет собой обычный XML-файл, вы можете использовать сценарий PowerShell для обновления в нем информации о версии. Например, у вас может быть следующее MyProject\MyProject.csproj:

<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.0</TargetFramework>
    <Version>1.2.3.4</Version>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="**\*.cs" />
    <EmbeddedResource Include="**\*.resx" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.NETCore.App" Version="1.0.1" />
  </ItemGroup>
</Project>

Тогда на AppVeyor скрипт исправления <Version> будет следующим:

$xmlPath = "$env:appveyor_build_folder\MyProject\MyProject.csproj"
$xml = [xml](get-content $xmlPath)
$propertyGroup = $xml.Project.PropertyGroup | Where { $_.Version}
$propertyGroup.Version = $env:appveyor_build_version
$xml.Save($xmlPath)
person Feodor Fitsner    schedule 25.02.2017
comment
Спасибо, Федор, это решение помогло! - person Valentine; 02.03.2017
comment
Будет ли это реализовано в AppVeyor? - person Julian; 12.05.2017
comment
Да, у нас есть проблема с этим: github.com/appveyor/ci/issues/1404 - person Feodor Fitsner; 13.05.2017