【问题标题】:Patch version of ASP Core (preview 4) with AppVeyor带有 AppVeyor 的 ASP Core(预览版 4)补丁版本
【发布时间】:2017-02-24 11:27:59
【问题描述】:
如何修补 Asp.Net Core 项目 (csproj) 以便使用 AppVeyor 构建版本控制的二进制文件?
有没有办法分别为 AssemblyVersion 和 FileVersion 应用版本控制?
AppVeyor 有预定义的步骤来修补 AssemblyInfo.cs 文件,但它不包含在项目中,并且 AssemblyInfo 的功能已移至 csproj 文件,因此不清楚如何处理版本控制。
感谢您的帮助!
【问题讨论】:
标签:
asp.net
.net
.net-core
appveyor
【解决方案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)