AppVeyor has support for setting the version of a binary during a build. However - this deals with the classic ASP.Net world of AssemblyInfo.  I didn't find any reference to support for doing the same with dot net core.  Remember, dot net core relies upon a <Version> or a <VersionPrefix> setting in the .csproj file.  Personally, <Version> is my jam.
However, coming up with your own bit of powershell that stamps the version during the build is a doddle; here we go:
Param($projectFile, $buildNum)
$content = [IO.File]::ReadAllText($projectFile)
$regex = new-object System.Text.RegularExpressions.Regex ('()([\d]+.[\d]+.[\d]+)(.[\d]+)(<\/Version>)', 
         [System.Text.RegularExpressions.RegexOptions]::MultiLine)
$version = $null
$match = $regex.Match($content)
if($match.Success) {
    # from "1.0.0.0 " this will extract "1.0.0"
    $version = $match.groups[2].value
}
# suffix build number onto $version. eg "1.0.0.15"
$version = "$version.$buildNum"
# update "1.0.0.0 " to "$version "
$content = $regex.Replace($content, '${1}' + $version + '${4}')
# update csproj file
[IO.File]::WriteAllText($projectFile, $content)
# update AppVeyor build
Update-AppveyorBuild -Version $version
 
You can invoke this script as part of the build process in AppVeyor by adding something like this to your appveyor.yml.
before_build:
- ps: .\ModifyVersion.ps1 $env:APPVEYOR_BUILD_FOLDER\src\Proverb.Web\Proverb.Web.csproj $env:APPVEYOR_BUILD_NUMBER
It will keep the first 3 parts of the version in your .csproj (eg "1.0.0") and suffix on the build number supplied by AppVeyor.