У меня есть приложение .NET Core 2.1 с базой данных, использующей EF Core 2.1.Приложение развернуто в Azure.В Azure у меня есть служба приложений для самого приложения.Кроме того, у меня есть SQL-сервер Azure и база данных, которая используется приложением.
Для развертывания я использую VSTS, где каждый коммит мастер запускает конвейер сборки в VSTS.Конвейер сборки состоит из следующих заданий:
(Обратите внимание, что тестовое задание отключено, поскольку у меня есть другая проблема с ним, но это не такчасть моего вопроса)
До сих пор все работало с этим набором, и с ним не было никаких проблем.Но недавно я столкнулся со следующей проблемой: в предыдущей версии приложения у меня было несколько моделей представлений, например:
public class OrderCloserModel
{
public long OrderId { get; set; }
[Display(Name = "Cím")]
public string Address { get; set; }
[Display(Name = "Cserék száma")]
public int NumberOfChanges { get; set; }
}
Так что ничего особенного.После того как я удалил их (потому что они мне больше не нужны) и передал все на мастер, вызывается сборка CI, а затем развертывается новая версия приложения.Затем я проверил приложение, и оно упало.Затем, конечно, я проверил логирование, есть ли у меня какие-то проблемы там.Я обнаружил, что приложению требуется просмотр моделей, которые я удалил.Поначалу это может звучать тривиально, я удалил некоторые модели, используемые в новой версии приложения.Но дело в том, что эти модели представлений нигде не используются !!!Я пытался найти их (VS CTRL + SHIT + F "Найти и заменить") в кодовой базе, но ни один из них не используется.Только объявленные классы.
Я пытался воссоздать эти файлы в мастере (без использования), снова развернул приложение, затем приложение снова заработало!Сначала я мог подумать о том, что каким-то образом развертывается старое приложение, а не новое.Но это не так, поскольку функции недавно развернутого приложения отражают ожидаемое новое поведение.
Поэтому для обхода этой проблемы было воссоздать отсутствующие модели в базе кода, я поместил комментарий // TODO для их удаления.позже.Ну, честно говоря, мне это кажется очень неприятным, но мое приложение работает и может быть использовано в производстве.
На следующем рисунке также показано, что никаких проблем во время сборки:
Что я мог бы также подумать, так это то, что, возможно, существует кэш Azure dll, который использует некоторые старые dll, но я не смог найти какой-либо соответствующей проблемы / вопроса / статей по этому поводу.
Как вы думаете, в чем причина проблемы?Если потребуется дополнительная информация, я включу их как можно скорее, спасибо за все!
Дополнительная информация: Публикация выглядит следующим образом:
Параметры задания публикации артефакта:
И последний, но не менее важный журнал успешных выпусков: