Почему Azure Devops изменяют дату на dll, загруженных из Nuget?
Это потому, что значение по умолчанию значения preserveTimestamp параметр False в задаче Копирование файлов .
- task: CopyFiles@2
inputs:
#sourceFolder: # Optional
#contents: '**'
targetFolder:
#preserveTimestamp: false # Optional
Чтобы решить эту проблему, вам просто нужно изменить значение на True
.
- task: CopyFiles@2
inputs:
sourceFolder:
contents: '**'
targetFolder:
preserveTimestamp: True
Обновление:
Я пытался добавить preserveTimestamp: True для задачи CopyFiles@2, но это не имело никакого значения
Когда я Сначала проверив эту проблему, я обнаружил, что copy task
изменит Timestamp
файла. Это действительно так. И нашел решение, используя опцию preserveTimestamp
. Я думал, что это была целая проблема, пока Кирстен Жадность не ответила мне, что это решение не работает.
Мне пришлось снова протестировать проблему и обнаружить, что задача PublishBuildArtifacts
также изменит Timestamp
файл, но нет такой опции preserveTimestamp
, как задача копирования. Мы могли бы найти похожую нить здесь и здесь , но ни одна из них не дает решения / обходного пути.
Обходной путь, о котором я сейчас думаю, состоит в том, что вы можете попытаться Объедините артефакты в сжатый zip-файл, а затем распакуйте его при использовании.
Итак, я использую Архивные файлы вместо задачи копирования:
- task: ArchiveFiles@2
displayName: 'Archive $(Build.SourcesDirectory)\TestSample\TestSample\bin\Debug'
inputs:
rootFolderOrFile: '$(Build.SourcesDirectory)\TestSample\TestSample\bin\Debug'
archiveFile: '$(Build.ArtifactStagingDirectory)/Test.zip'
Затем опубликуйте sh этот zip-файл как артефакт:
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
Теперь я могу сохранить метку времени для файлов:
Надеюсь, это поможет.