У нас есть 2 веб-задания Azure, подключенных к нашему приложению ASP WebApi. Ни один из них не использует никаких зависимостей от другого. И все же после публикации у одного из них есть исполняемые файлы от другого. Стоит отметить, что это происходит только при публикации. На VS build все нормально.
Так выглядит иерархия файлов на Azure FTP
Первый, Deployment, публикуется, как и ожидалось. Это исполняемые файлы в его папке:
Второй, EmailSender, содержит исполняемые файлы из развертывания:
Что любопытно, в них есть также папка app.publish, содержащая только один и тот же файл WebJob.Deployment.exe
:
Задание развертывания работает нормально. К сожалению, Azure не распознает задание EmailSender, вместо этого он выполняет развертывание. Единственное решение, которое работает прямо сейчас, - это ручное удаление исполняемых файлов Deployment непосредственно с FTP при каждой публикации.
Сейчас мы попробовали несколько вещей из SO и блогов, но безуспешно.
Edit:
Я чего-то достиг. Это не решило проблему, но у нас больше нет папки app.publish
. Вот ссылка на решение по SO . Я не знаю, почему у нас были проверены опции «ClickOnce security» для приложения WebJob.Deployment
.
Обновление:
Я провел несколько тестов с MSBuild
и нашел что-то любопытное. Как я уже говорил, Visual Studio Publish
работает просто отлично - дополнительные исполняемые файлы не развертываются. Но когда я запускаю программу MSBuild
(с той же publish profile
и конфигурацией проекта), я получаю дополнительную Deployment.exe
внутри папки EmailsSender
. Это команда, которую я запускаю:
MSBuild RestAPI.Host.csproj /t:Build /p:Configuration="Develop" /p:Platform="AnyCPU" /p:DocumentationFile="RestAPI.Host.XML" /p:DeployOnBuild="true" /p:PublishProfile="fakebuild_develop.pubxml" /p:OutputPath="backend\build\app\\" /p:SolutionDir="backend\\"
Может кто-нибудь сказать мне, в чем разница между MSBuild
и VS Publish
? Я не могу найти ничего полезного в интернете.