You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Assembly版本配置中VersionRevision始终返回0的技术求助

VersionRevision始终返回0的问题排查

问题背景

因权限限制无法使用流水线,仅靠Git管理代码,自定义Assembly版本号规则为:1.<年份后两位>.<月日>.<时分>,示例格式如1.22.1026.903。但实际构建时VersionRevision始终返回0,当前使用的MSBuild配置如下:

<PropertyGroup>
    <VersionMajor>1</VersionMajor>
    <VersionMinor>$([System.Int64]::Parse($([System.DateTime]::UtcNow.Date.ToString("yy"))))</VersionMinor>
    <VersionPatch Condition="'$(VersionPatch)' == ''">$([System.Int64]::Parse($([System.DateTime]::UtcNow.Date.ToString("MMdd"))))</VersionPatch>
    <VersionRevision Condition="'$(VersionRevision)' == ''">$([System.Int64]::Parse($([System.DateTime]::UtcNow.Date.ToString("HHmm"))))</VersionRevision>
</PropertyGroup>

<PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <Version>$(VersionMajor).$(VersionMinor).$(VersionPatch).$(VersionRevision)</Version>
    <Deterministic>False</Deterministic>
</PropertyGroup>

测试静态带前导零的值(如下配置)时,VersionRevision能正常返回对应数值:

<VersionRevision Condition="'$(VersionRevision)' == ''">$([System.Int64]::Parse("0903"))</VersionRevision>

问题原因

问题出在VersionRevision的生成逻辑上:$([System.DateTime]::UtcNow.Date)会获取当前UTC日期的零点时刻,此时HHmm格式的时间字符串必然是0000,转成Int64后就是0,导致VersionRevision始终为0。

解决方案

去掉Date属性,直接使用UtcNow获取当前完整的UTC时间,这样就能正确拿到当前的时分信息。修正后的VersionRevision配置如下:

<VersionRevision Condition="'$(VersionRevision)' == ''">$([System.Int64]::Parse($([System.DateTime]::UtcNow.ToString("HHmm"))))</VersionRevision>

完整修正后的MSBuild配置:

<PropertyGroup>
    <VersionMajor>1</VersionMajor>
    <VersionMinor>$([System.Int64]::Parse($([System.DateTime]::UtcNow.Date.ToString("yy"))))</VersionMinor>
    <VersionPatch Condition="'$(VersionPatch)' == ''">$([System.Int64]::Parse($([System.DateTime]::UtcNow.Date.ToString("MMdd"))))</VersionPatch>
    <VersionRevision Condition="'$(VersionRevision)' == ''">$([System.Int64]::Parse($([System.DateTime]::UtcNow.ToString("HHmm"))))</VersionRevision>
</PropertyGroup>

<PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <Version>$(VersionMajor).$(VersionMinor).$(VersionPatch).$(VersionRevision)</Version>
    <Deterministic>False</Deterministic>
</PropertyGroup>

内容的提问来源于stack exchange,提问作者Yzak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 12:55:18