ASP Core 的补丁版本(预览版 4)与 AppVeyor

Patch version of ASP Core (preview 4) with AppVeyor

如何修补 Asp.Net 核心项目 (csproj) 以便使用 AppVeyor 构建版本控制的二进制文件? 有没有办法分别为 AssemblyVersion 和 FileVersion 应用版本控制?

AppVeyor 已经预定义了修补 AssemblyInfo.cs 文件的步骤,但它没有包含在项目中,并且 AssemblyInfo 的功能已移至 csproj 文件,因此不清楚如何处理版本控制。

感谢您的帮助!

由于 .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)