#azure #azure-devops #yaml #azure-web-app-service #azure-pipelines
#azure #azure-devops #yaml #azure-web-app-service #azure-конвейеры
Вопрос:
У меня возникла проблема с развертыванием моего приложения Blazor в службу веб-приложений Azure через конвейер. Выполняются все шаги, кроме развертывания службы веб-приложений Azure.
Это выдает ошибку:
**##[error]Error: No package found with specified pattern: D:a1s***.zip<br/>Check if the package mentioned in the task is published as an artifact in the build or a previous stage and downloaded in the current job.**
Это проблемный конвейер YAML:
trigger:
- master
pool:
vmImage: 'windows-latest'
steps:
- task: DotNetCoreCLI@2
inputs:
command: 'build'
projects: '**/*.csproj'
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
- task: AzureWebApp@1
inputs:
azureSubscription: 'Pay-As-You-Go (********-****-****-****-************)'
appType: 'webApp'
appName: 'Xenoprovider'
package: '$(System.DefaultWorkingDirectory)/**/*.zip'
deploymentMethod: 'auto'
Я был бы признателен, если кто-нибудь сможет помочь, я работаю в одиночку 🙂
Комментарии:
1. Где
zip
создан файл? в каком расположении?2. какой файл вам нужно загрузить в веб-приложение Azure? zip-файл или razor-файл?
3. дело в том, что я не совсем уверен. Думаю, мне нужен zip-файл. Моя конечная цель — опубликовать приложение как производство (внести изменения в репозиторий, затем создать и развернуть). дело в том, что я делаю это вручную через Visual Studio -> Опубликовать действие. Но теперь я хотел бы использовать Azure DevOps для автоматизации этих процессов.
Ответ №1:
Чего вам здесь не хватает, так это публикации вашего проекта. Поэтому сначала, пожалуйста, удалите это:
task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)
targetFolder: $(Build.ArtifactStagingDirectory)
вам не нужно копировать весь исходный код, а затем публиковать его как артефакт конвейера.
Пожалуйста, убедитесь, что вы также используете правильную версию ядра dotnet. Вы можете проверить это в csproj <TargetFramework>netcoreapp3.0</TargetFramework>
, а затем с помощью задачи ниже убедиться, что установлена правильная версия:
steps:
- task: UseDotNet@2
inputs:
version: '3.0.x'
Затем, пожалуйста, добавьте шаг для публикации вашего проекта, подобного этому (перед публикацией артефакта конвейера / сборки)
- task: DotNetCoreCLI@2
displayName: Publish
inputs:
command: publish
publishWebProjects: false
projects: '$(projectDirectory)hadar.csproj'
arguments: '--configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: true
и в конце, пожалуйста, убедитесь, что вы правильно передали пакет на этом шаге
- task: AzureWebApp@1
displayName: Azure Web App Deploy
inputs:
azureSubscription: $(azureSubscription)
appName: samplewebapp
package: $(Build.ArtifactStagingDirectory)/**/*.zip
Пожалуйста, обратите внимание, что таким образом вам не нужно копировать step, потому что вы публикуете $(Build.ArtifactStagingDirectory)
и ищете пакет для публикации $(Build.ArtifactStagingDirectory)
, а не в $(System.DefaultWorkingDirectory)
Комментарии:
1. Спасибо. Существует одна проблема с задачей публикации:
Error: The process 'C:Program Filesdotnetdotnet.exe' failed with exit code 1
за ней следует[warning]Info: Azure Pipelines hosted agents have been updated to contain .Net Core 3.x (3.1) SDK/Runtime along with 2.1. Unless you have locked down a SDK version for your project(s), 3.x SDK might be picked up which might have breaking behavior as compared to previous versions.
и, наконец,[error]Dotnet command failed with non-zero exit code on the following projects : D:a1sWEBXenoproviderXenoprovider.csproj
2. Я полагаю, что я приближаюсь к решению здесь, поэтому я благодарю вас за информацию.
3. Какую версию ядра dotnet вы используете? Пожалуйста, проверьте этот сайт документа learn.microsoft.com/en-us/azure/devops/pipelines/ecosystems/… У вас есть шаг, чтобы определить версию ядра dotnet.
4. Есть ли способ проверить на портале Azre DevOps? Но в моем csproj он определяется как: ` «Microsoft. AspNetCore. Компоненты. WebAssembly» Версия =»3.2.1″ «Microsoft. AspNetCore. Компоненты. Веб-сборка. Сборка» Версия =»3.2.1″ Microsoft. AspNetCore. Компоненты. Веб-сборка. DevServer» Версия =»3.2.1″ Microsoft. AspNetCore.Http.Abstractions»`
5. Пожалуйста, проверьте
<TargetFramework>netcoreapp3.0</TargetFramework>
свой csproj.