Случайные сбои в конвейерах сборки при запуске dotnet-ef

#azure-devops #azure-pipelines #ef-core-3.1

#azure-devops #azure-конвейеры #ef-core-3.1

Вопрос:

В рамках сборки мне нужно сгенерировать сценарий миграции БД. Я использую предоставленный Microsoft агент сборки

(только интересная часть ниже)

 pool:
  vmImage: 'windows-2019'

- task: DotNetCoreCLI@2
      displayName: Install dotnet-ef
      inputs:
        command: 'custom'
        custom: 'tool'
        arguments: 'install dotnet-ef -g --version 5.0.0-preview.8.20407.4'

    - task: DotNetCoreCLI@2
      displayName: Generate migrations sql script
      inputs:
        command: 'custom'
        custom: 'ef'
        arguments: 'migrations script --project Web/Dal --startup-project Web/WebApi --configuration $(buildConfiguration) --context EmailContext --no-build --output $(Build.ArtifactStagingDirectory)/emailcontext-migrations.sql --idempotent --verbose'
  

dotnet-ef установка, похоже, работает нормально:
Tool 'dotnet-ef' (version '5.0.0-preview.8.20407.4') was successfully installed.

но время от времени он по-прежнему выходит из строя (чаще в последнее время) :

 "C:Program Filesdotnetdotnet.exe" ef migrations script --project Web/Dal --startup-project Web/WebApi --configuration Release --context EmailContext --no-build --output D:a1a/emailcontext-migrations.sql --idempotent --verbose
Could not execute because the specified command or file was not found.
  

Есть ли проблема с моей конфигурацией конвейера сборки?

Ответ №1:

Если время от времени происходит сбой, я бы скорее сказал, что это может быть проблемой с предварительной версией.

Пожалуйста, добавьте следующий шаг после установки, чтобы перечислить все глобально установленные инструменты:

 dotnet tool list -g
  

Вы также можете показать нам журнал установки инструмента на случай, если ваш конвейер не работает. Чтобы проверить, есть ли у вас это:

введите описание изображения здесь

(Мы просто не знаем этого, поскольку не можем проверить ваши журналы).

И если это все же произойдет, я бы посоветовал вам создать проблему на GitHub.

Комментарии:

1. Установка всегда завершается успешно. Я вставил журнал. Такая же проблема возникла, когда мы использовали последнюю стабильную версию ef tools.

Ответ №2:

Судя по вашему описанию, это временная проблема. Таким образом, ваша конфигурация конвейера может быть правильной.

Не удалось выполнить, поскольку указанная команда или файл не были найдены.

Похоже, эта проблема связана с установленным пакетом dotnet-ef.

По предложению Кшиштофа Мадея, эта версия пакета может вызвать эту проблему.

Вы можете попробовать использовать последнюю версию: 5.0.0-rc.1.20451.13 или последнюю стабильную версию : 3.1.8 .

Вот запрос на GitHub с той же проблемой (не удается найти файл после глобальной установки dotnet-ef). Вы можете следить за ним и проверять обновление.

С другой стороны, вы можете попробовать использовать Command Line Task для установки dotnet-ef.

Например:

   - task: CmdLine@2
    inputs:
      script: 'dotnet tool install --global dotnet-ef  --version xxxx'
  

Комментарии:

1. У меня была такая же проблема с семейством 3.1 *, поэтому, похоже, она не связана с версией.

2. Я долгое время использую 3.1.2 на производстве без каких-либо проблем. Можете ли вы попробовать эту версию?