Зависимости, копируемые в приватный канал в Azure DevOps - PullRequest
0 голосов
/ 26 февраля 2020

Я настроил конвейер сборки для библиотеки моделей, которая используется несколькими моими проектами. Я получаю к нему доступ через приватный канал в Azure DevOps, и он работает просто отлично. Я могу получить библиотеку в Visual Studio, и все мои проекты получают самую последнюю версию. Однако в ленте находятся все библиотеки зависимостей, используемые в библиотеке моделей (например, Microsoft. Azure .Storage.Blob, System.Threading, Microsoft.AspNetCore и др. c.). Я не смог найти никаких указаний на то, почему это происходит, ожидаемое ли это поведение или я что-то напортачу. Мой YAML-файл для конвейера сборки приведен ниже:

Кроме того, кто-нибудь знает, как лучше управлять версиями пакетов? Это кажется очень странным, но это был единственный способ заставить работать версии с автоинкрементом.

# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml

name: $(projectName)-$(majorMinorVersion).$(semanticVersion)

pool:
  vmImage: 'windows-latest'

# pipeline variables
variables:
  majorMinorVersion: 1.1
  # semanticVersion counter is automatically incremented by one in each execution of pipeline
  # second parameter is seed value to reset to every time the referenced majorMinorVersion is changed
  semanticVersion: $[counter(variables['majorMinorVersion'], 0)]
  projectName: 'MyProject.Models'
  buildConfiguration: 'Release'
  projectPath: 'Shared/MyProject.Models.csproj'
  fullVersion: '$(majorMinorVersion).$(semanticVersion)'

steps:
# show version number on start
- task: Bash@3
  inputs:
    targetType: 'inline'
    script: |
      echo Building $(projectName)-$(fullVersion)

- task: DotNetCoreCLI@2
  inputs:
    command: 'pack'
    packagesToPack: $(projectPath)
    versioningScheme: 'byEnvVar'
    versionEnvVar: 'fullVersion'

- task: DotNetCoreCLI@2
  inputs:
    command: 'push'
    packagesToPush: '$(Build.ArtifactStagingDirectory)/MyProject.Models*.nupkg'
    nuGetFeedType: 'internal'
    publishVstsFeed: '<feed GUID>'

1 Ответ

0 голосов
/ 27 февраля 2020

Зависимости, копируемые в частную ленту в Azure DevOps

Это потому, что ваш частный канал Nuget по умолчанию устанавливает nuget.org в качестве источника исходных данных, если вы установите Package from publi c источники включаются при создании этого канала:

enter image description here

Затем go в Настройки-> Исходящий источник, вы найдете три публикации c источников в списке:

enter image description here

Когда мы загрузим какие-либо пакеты из вышестоящих источников, они будут кэшированы в артефактах, вы увидите это в следующий раз. Это кэшированные пакеты из исходных источников, поэтому нам не нужно загружать их снова из исходных источников при следующем их использовании, и все включенные исходные источники одобрены MS , поэтому вам не нужно беспокоиться о них.

Кроме того, если вы все еще беспокоитесь о них, вы можете отключить исходные источники, но в этом случае вам нужно опубликовать sh все зависимости в вашем личном фиде. другой ise, ваш пакет библиотеки моделей выдаст ошибку could not found the dependencies.

Надеюсь, это поможет.

...