Командная строка dotnet publish пропускает развертывание в функции Azure. - PullRequest
0 голосов
/ 29 октября 2018

Я настраиваю некоторые DevOps для своего сайта, и до сих пор я успешно использовал следующую команду для развертывания в двух приложениях ASP.NET Core:

dotnet publish ProjectName.csproj /p:PublishProfile="PublishProfileName" /p:Password=password

Я только что создал функцию Azure, используя среду выполнения V2 и .NET Core 2.1, как предлагается для всех новых проектов (см. Здесь https://azure.microsoft.com/en-us/blog/introducing-azure-functions-2-0/),, но если я использую ту же команду, я обнаружу, что она только публикует его в локальной папке и, похоже, не развертывает проект в Azure.

Если я использую эквивалент MSBuild, кажется, что он также пропускает этап развертывания.

Я предполагаю, что это каким-то образом связано с типом проекта, не имеющим соответствующих целей сборки, но я не уверен, как отследить это дальше.

Я могу загрузить параметры публикации из Azure, импортировать их в Visual Studio и опубликовать через VS, поэтому кажется, что если путь VS работает, это может быть регрессия или ошибка в инструменте где-то, а не что-то неподдерживаемое?

Я использую:

  • Visual Studio 15.8.8 + 28010.2048
  • Функции Azure и инструменты веб-заданий 15.9.02046.0

Если я не должен использовать dotnet publish с функциями Azure, что я должен использовать вместо этого для CD с командной строкой? Я видел ссылки на инструменты интерфейса командной строки Azure Function, но я бы предпочел не устанавливать менеджер пакетов на наших агентах сборки, если это можно сделать с помощью других инструментов.

Ответы [ 3 ]

0 голосов
/ 29 октября 2018

Попробуйте вместо этого интерфейс командной строки Azure: https://docs.microsoft.com/en-us/cli/azure/functionapp/deployment?view=azure-cli-latest

или функциональные основные инструменты: https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local#publish

0 голосов
/ 30 октября 2018

В конце, с помощью ответов и комментариев (спасибо всем), у меня есть командная строка MSBuild, которая работает для развертывания моего проекта .NET Core 2.1 Function:

msbuild /p:DeployOnBuild=True /p:PublishProfile=somename.pubxml /p:Configuration=Release

Однако стоит отметить следующее:

Общие примечания по публикации .NET Core

  1. Если вы пропустите по буквам имя профиля публикации, он автоматически пропустит развертывание (без предупреждения или ошибки).

Различия между развертыванием функций ASP.NET Core и .NET Core

  1. Если вы используете 'публикацию dotnet', она всегда будет пропускать развертывание.

  2. Если вы не укажете / p: DeployOnBuild = True, развертывание будет пропущено.

0 голосов
/ 29 октября 2018

Если вы не хотите, чтобы в ваших агентах сборки был «менеджер пакетов», вы можете сделать zip-развертывание вашего функционального приложения. Подробности можно найти на MSDN здесь:

https://docs.microsoft.com/en-us/azure/azure-functions/deployment-zip-push#rest

...