Я пытаюсь связать существующий проект WebJob (созданный с помощью шаблона Azure WebJob net461) с существующим веб-приложением, перейдя по ссылке https://docs.microsoft.com/en-us/azure/app-service/webjobs-dotnet-deploy-vs.
Однако
Проблема 1: Visual Studio показывает мне «Add-> Existing Project as Azure WebJob» в первый раз, затем, когда я нажимаю на это меню, выдается сообщение о том, что « команда не применима для выбранного проекта ». После этого оно никогда не отобразится в этом меню, если я не перезапущу VS.
Проблема 2: С другой стороны, мой независимый проект WebJob, даже после того, как был опубликован в Azure через VS вВ моем веб-приложении (по адресу wwwroot / app_data / jobs / непрерывно / WebJob) WeJob не запускается или распознается моим веб-приложением . Но когда я выполняю EXE в опубликованном месте, он выполняется успешно.
Проблема 3: Я следовал за ответом в Развертывание консольного веб-приложения для работы в службе приложений Azure, содержащей веб-интерфейс с использованием конвейеров Azure Devops ссылка, чтобы выпустить мой WebJob из конвейера Azure. Но это создает каталог Artifact в wwwroot / app_data / jobs / непрерывный / WebJob и , нажимая ZIP-файл вместо EXE. Так как мой проект находится в net461, мои задачи по сборке не являются dotnetcore. Итак, я не получаю точно такой же пользовательский интерфейс, как в ссылке.
Есть ли какая-либо последняя документация, доступная для этого?
YML-файл;
# ASP.NET Core (.NET Framework)
# Build and test ASP.NET Core projects targeting the full .NET Framework.
# Add steps that publish symbols, save build artifacts, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core
trigger:
- master
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebJob.zip" /p:DeployIisAppPath="Default Web Site"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: VSTest@2
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'AzureWebJobArtifact'
publishLocation: 'Container'
My развернуть задачу имеет;
Connection Type = Azure Resource Manager
App Service Type = Web App on Windows
Package or Folder = $(System.DefaultWorkingDirectory)/AzureWebJobArtifact
Deployment Method = ''
РЕДАКТИРОВАТЬ:
После изменения задач сборки и публикации артефактов в YML, как показано ниже, создается папка "AzureWebJobArtifact" в WEBJOB_ROOT_PATH (wwwroot / app_data/ jobs / непрерывный / WebJob) и развертывание только необходимых исполняемых файлов.
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:OutDir=$(System.DefaultWorkingDirectory) /p:DeployIisAppPath="Default Web Site"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(System.DefaultWorkingDirectory)\AzureWebJob\obj\Release\net461'
ArtifactName: 'AzureWebJobArtifact'
publishLocation: 'Container'
Я просто хочу, чтобы мой WebJob запускался / продолжался после публикации.