Azure AppService deploy.cmd, используя неправильный файл
Я пытаюсь настроить непрерывное развертывание на тестовом сервере в Azure. Приложение является приложением ASP.Net, но в этом случае это не должно иметь большого значения.
Мой процесс сборки (город команды) создает папку, в которой есть все необходимое для развертывания (за исключением некоторой информации о строке подключения). Если вы указываете IIS на этот каталог, он прекрасно работает. Если вы отправляете этот каталог по FTP до Azure, он также работает.
Я отслеживаю каждую из этих сборок в git и отправляю их на Github. Поэтому я пытаюсь использовать параметр развертывания Azure для развертывания из github. Все в мерзавце. Папка /bin включена.
Куду не нужно ничего делать, кроме как извлечь из git и скопировать все файлы в wwwroot.
Поэтому я установил свой файл.deployment так:
[config]
project = .
Каждый раз, когда я делаю это, развертывание дает мне сообщение:
Using cached version of deployment script (command: 'azure -y --no-dot-deployment -r "D:\home\site\repository" -o "D:\home\site\deployments\tools" --aspWAP "D:\home\site\repository\MyProj.csproj" --no-solution').
И он запускает какой-то общий автоматически сгенерированный deploy.cmd.
Если я удаляю файл deploy.cmd из кэша, он восстанавливает какой-то общий.
И, самое главное, делая все это, НЕПРАВИЛЬНАЯ АССАМБЛЕЯ БУДЕТ РАЗВЕРТАНА!!
Мое приложение зависит от System.Web.Helpers.dll. Правильная версия этой DLL находится в github. Я проверял это несколько раз.
Куду, однако, захватывает более старый из NuGet и развертывает его. И, конечно же, я получаю страшную ошибку YSOD о невозможности загрузить этот файл.
Что мне нужно сделать, чтобы Kudu просто скопировал файлы из моего репозитория github в wwwroot и ничего больше?
1 ответ
Я получил его для развертывания вручную, отредактировав автоматически сгенерированный файл deploy.cmd, который находится на \home\site\deployments\tools\deploy.cmd
в куду.
Я закомментировал 2 автоматически сгенерированных строки:
:: 1. Restore NuGet packages
:: 2. Build to the temporary path
(закомментировал весь код под ними тоже)
И затем отредактировал вручную 3-й раздел, чтобы запустить синхронизацию kudu из DEPLOYMENT_SOURCE вместо временного файла, например так:
:: 3. KuduSync
IF /I "%IN_PLACE_DEPLOYMENT%" NEQ "1" (
call :ExecuteCmd "%KUDU_SYNC_CMD%" -v 50 -f "%DEPLOYMENT_SOURCE%" -t "%DEPLOYMENT_TARGET%" -n "%NEXT_MANIFEST_PATH%" -p "%PREVIOUS_MANIFEST_PATH%" -i ".git;.hg;.deployment;deploy.cmd"
IF !ERRORLEVEL! NEQ 0 goto error
)