#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 на производстве без каких-либо проблем. Можете ли вы попробовать эту версию?