在 Azure DevOps Server 2022 中,我的构建管道正在创建时间戳与 UTC 或本地时间不同的 DLL

问题描述 投票:0回答:1

我刚刚开始使用管道,并为一个简单的 .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 小时内修改的。

这是预期的行为吗?我可以调整一些东西来使其更加合理吗?

azure-devops tfs azure-pipelines
1个回答
0
投票

在我的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 移至其他环境,因为它可能会更改时间戳上的时区。

© www.soinside.com 2019 - 2024. All rights reserved.