Определение сборки для NETCore2 WebJob в VSTS

Я устанавливаю определение сборки в Visual Studio Team Services для WebApp, включая некоторые WebJobs, все из которых находятся в.NET Core 2. Задачи, которые настраиваются:

  • NuGet 4.4.1: установщик инструмента NuGet
  • Восстановление NuGet
  • Установка NPM
  • Глоток
  • Построить решение (содержащее все проекты в.sln, включая webapp и webjob).
  • Развертывание службы приложений Azure: (веб-приложение)
  • Развертывание службы приложений Azure: (веб-работа)
  • Обновить базу данных (.dacpac)
  • остальное / очистка...

Проблема 1: с.NETCore 2 я не могу связать веб-работу с веб-приложением в VS2017.

Проблема 2: я не могу найти способ развернуть веб-задание в подпапке /site/wwwroot/app_data/Jobs/Triggered в месте назначения веб-приложения. Для этого я попытался установить аргументы на msdeploy (как -dest:), но не удалось.

Проблема 3: на рынке, кажется, нет никакой задачи специально для этого.

Проблема 4: (не реальная проблема, но все в порядке), я не могу найти никаких подсказок, просматривая веб-страницы.

Аргументы msbuild в задаче Build:

/m /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=false /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"

Итак, у меня есть несколько сжатых проектов, которые я могу затем выбрать отдельно, используя различные задачи Azure App Service Deploy. Все работает с успехом, но веб-работа не публикуется, так как я не могу настроить таргетинг на веб-приложение.

Ниже приведен вывод службы развертывания службы приложений Azure.

>     ##[section]Starting: Azure App Service Deploy: ******devapi webjob
> ============================================================================== Task         : Azure App Service Deploy Description  : Update Azure
> App Service using Web Deploy / Kudu REST APIs Version      : 2.1.14
> Author       : Microsoft Corporation Help         : [More
> Information](https://aka.ms/azurermwebdeployreadme)
> ============================================================================== 9eda6c4a-a587-4dda-b343-fecd5027a2f8 exists true Got connection
> details for Azure App Service:'******devapi' [command]"C:\Program
> Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:getParameters
> -source:package='D:\a\1\a\******.Webjob.zip' <output>   <parameters>
>     <parameter name="IIS Web Application Name" value="Default Web Site" tags="IisApp">
>       <parameterEntry kind="ProviderPath" scope="IisApp" match="^D:\\a\\1\\s\\src\\jobs\\******\.Webjob\\obj\\Release\\netcoreapp2\.0\\PubTmp\\Out\\$"
> />
>     </parameter>   </parameters> [command]"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync
> -source:package='D:\a\1\a\******.Webjob.zip' -dest:auto,ComputerName='https://******devapi.scm.azurewebsites.net:443/msdeploy.axd?site=******devapi',UserName='********',Password='********',AuthType='Basic' -setParam:name='IIS Web Application Name',value='******devapi' -enableRule:AppOffline -enableRule:DoNotDeleteRule -userAgent:VSTS_someguid Info: Using ID 'xxx' for connections to the remote server. Total changes: 0 (0 added, 0 deleted, 0 updated, 0
> parameters changed, 0 bytes copied) App Service successfully deployed
> at url http://******devapi.azurewebsites.net Successfully updated
> deployment History at
> https://******devapi.scm.azurewebsites.net/deployments/27891522952986583
> ##[section]Finishing: Azure App Service Deploy: ******devapi webjob

Пожалуйста, кто-нибудь имеет представление о том, как работать с WebJobs и создавать определения в VSTS?

Редактировать: Я разделил Построение и Выпуск, чтобы артефакт был выбран в Определении Выпуска после успешной сборки.

1 ответ

Решение

Так что я нашел свой ответ, следуя этому руководству.

Что он делает, так это решает мою первую проблему (что также имеет смысл).

Проблема 1: с.NETCore 2 я не могу связать веб-работу с веб-приложением в VS2017.

Таким образом, веб-работа "подключается" к приложению, в котором вы хотите ее опубликовать. Примечание для инструкции в этом руководстве. В веб-приложении.csproj заменить / удалить $(ProjectDir)$(PublishDir) и установите его в соответствии с вашими потребностями.

<Target Name="PostpublishScript" AfterTargets="Publish">  
    <Exec Command="dotnet publish ..\Azure.WebJob.Continous\ -o $(ProjectDir)$(PublishDir)App_Data\Jobs\Continuous\Azure.WebJob.Continous" />
    <Exec Command="dotnet publish ..\Azure.WebJob.Triggered\ -o $(ProjectDir)$(PublishDir)App_Data\Jobs\Triggered\Azure.WebJob.Triggered" />
</Target>
Другие вопросы по тегам