Ответ 1
Файлы WebJobs хранятся в папках "App_Data/jobs/continu" или "App_Data/jobs/triggered", поэтому один из способов, которыми я мог бы использовать для развертывания как Web App, так и WebJob, - это копирование всех файлов WebJobs, необходимых для этих папки во время сборки. Я думаю, что это подойдет при обновлении VS-инструмента.
Мое решение немного отличается от вашего, так как я использую Visual Studio Team Services для создания и выпуска моего приложения для Azure, но концепция такая же. Вы можете использовать событие post build в Visual Studio для запуска script, который копирует эти файлы в папку заданий.
Ниже приведены шаги, которые я настроил в определении сборки VSTS:
-
Задача командной строки: Инструмент: dotnet Аргументы: восстановление
-
Задача Visual Studio Build: Решение: **\MyApp.sln Платформа: $(BuildPlatform) Конфигурация: $(BuildConfiguration) Версия Visual Studio: Visual Studio 2015
-
Задача командной строки: Инструмент: dotnet Аргументы: publish -c $(BuildConfiguration)
-
Задача командной строки: Инструмент: dotnet Аргументы: publish -c $(BuildConfiguration) $(Build.SourcesDirectory)\src\MyApp.Jobs\project.json
-
Скопировать файлы (это трюк): Исходная папка: src/MyApp.Jobs/bin/$(BuildConfiguration)/netcoreapp1.0/publish/ Содержание: ** Целевая папка: src/MyApp.Web/bin/$(BuildConfiguration)/netcoreapp1.0/publish/App_Data/jobs/triggered/MyJobName/
-
Задача архивных файлов: Корневая папка (или файл) для архивации: src/MyApp.Web/bin/$(BuildConfiguration)/netcoreapp1.0/publish/ Префикс имени корневой папки для архивного пути: не установлен Тип архива: zip Архивный файл для создания: website.zip Заменить существующий архив: отмечен
-
Скопировать файлы: Исходная папка: Содержание: **/*. zip Целевая папка: $(Build.ArtifactStagingDirectory)
-
Опубликовать задачу сборки артефактов: Путь сделать публикацию: $(Build.ArtifactStagingDirectory) Название артефакта:. Тип артефакта: Сервер