我刚刚开始使用管道,并为一个简单的 .NET Core Web 应用程序构建和发布。
Azure DevOps Server 主机是 Windows Server 2019,时区设置为东部标准时间。
但是,构建的 DLL 的时间戳为未来 10 小时,这感觉就像应该使用 UTC-0500 时却使用了 UTC+0500。
我在 Azure DevOps 服务器、集合、项目或管道级别找不到时区设置。 (大多数产品文档都会将其驱动到 Azure DevOps Service 设置,但此处不适用。)
文档说 ADO Pipelines 在 UTC 中运行,查看我的构建任务日志,我看到了 UTC 时间戳。所以我可能期望工件具有未来 5 小时的时间戳。但当我查看文件系统中生成的文件时,我发现它们是在未来 10 小时内修改的。
这是预期的行为吗?我可以调整一些东西来使其更加合理吗?
在我的ADO server 2022 env上检查,dll创建时间是基于代理时间的。
我的yaml:
pool:
name: selfpool1
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Debug'
steps:
- task: VSBuild@1
inputs:
solution: '$(solution)'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- powershell: |
get-date
Get-TimeZone
Get-ChildItem $(System.DefaultWorkingDirectory)\bin\Debug\net6.0\ConsoleApp10.dll -Force | Select-Object FullName, CreationTime, LastAccessTime, LastWriteTime, Mode, Length
场景一:
UTC-6 time zone
在代理机器上设置,dll创建时间如下:
场景2: 在代理机器上将时区更改为
UTC-5
,dll创建时间更改为1小时后。
创建时间的变化是由于代理时区的变化。另外,如果我将dll复制到另一个环境,时间戳将会改变。
您可以按照示例powershell脚本获取dll创建时间进行检查。此外,请勿将 dll 移至其他环境,因为它可能会更改时间戳上的时区。