Что происходит, когда версия пакета хостинга .NET Core отстает от версии машины для разработки

Ситуация

Сегодня в .NET Core 2.1 обнаружена уязвимость в системе безопасности, и все наши разработчики обновили свои .NET Core 2.1.x до .NET Core 2.1.10, но не знаем, когда мы приступим к обновлению пакетов хостинга .NET Core. на наших производственных веб-серверах.

Вопросы

  1. Не аннулируется ли тот факт, что мы обновили наши компьютеры для разработчиков, потому что мы еще не обновили веб-серверы?
  2. Как только код нашего разработчика будет запущен в производство, будут ли эти приложения работать со старыми библиотеками для .NET Core, которые находятся на наших веб-серверах, или они каким-то образом будут работать в более новой версии, с которой работают наши машины разработчиков?
  3. Если наши проекты, однажды запущенные в производство, будут работать под более старой версией библиотек .NET Core, столкнемся ли мы с проблемами совместимости из-за того, что наши разработчики использовали более старую версию?
  4. Я предполагаю, что мой последний вопрос заключается в том, должны ли мы всегда иметь в нашей компании политику обновления пакетов хостинга на наших веб-серверах, прежде чем мы обновим наши машины для разработки?

person Post Impatica    schedule 10.04.2019    source источник
comment
Это слишком широко для обсуждения, так как разные проблемы требуют разных решений, github.com/aspnet/Announcements/issues Иногда вам нужно только обновить среду выполнения, а в других случаях вам нужно обновить пакеты хостинга, но сами объявления содержат инструкции. Если вам нужна политика компании, пожалуйста, следуйте статьям Microsoft.   -  person Lex Li    schedule 10.04.2019


Ответы (1)


  1. Если вы хотите получить выгоду от обновления, выполненного с .NET Core 2.1.x до .NET Core 2.1.10, я бы сказал: пока вы не обновляете серверы, да.

  2. Приложения будут пытаться работать в рамках установленного фреймворка на серверах. Если вы публикуете в режиме по умолчанию, ваш код будет зависеть от фреймворка, установленного на ваших рабочих машинах. Однако вы можете перейти в режим автономного развертывания и внедрить инфраструктуру со своим кодом для работы на «целевой платформе» (https://www.danielcrabtree.com/blog/496)./net-core-self-contained-and-framework-dependent-deployments-explained).

  3. Он должен оставаться совместимым, потому что обе версии 2.1.x. Однако я бы не стал пробовать его в производстве, пока не протестировал его в отдельной среде.

  4. Я считаю, что вам не следует обновлять свои производственные серверы, пока вы не протестируете новую версию. Я бы изменил целевую структуру на своем компьютере для разработки, затем обновил бы структуру и код (по крайней мере) в предварительной среде. Я бы проверил это в этой среде. И только после этого я бы рассмотрел возможность изменения на рабочих серверах.

Точка 3. ОТРЕДАКТИРОВАНО на основе комментария Daboul

person Skrface    schedule 10.04.2019
comment
Я собирался отправить очень похожий ответ для 1, 2 и 4. Для 3 я бы сказал, что если среда выполнения на сервере - 2.1.X, то даже если машина разработчика немного новее, если она остается 2.1.X должен быть совместим. То же самое большое и меньшее целое число должно означать здесь совместимость, не так ли? - person Daboul; 10.04.2019
comment
@Daboul Вы правы, это должно сработать. Однако я бы не стал проверять это на производстве. Я обновлю свой ответ, чтобы быть более точным. - person Skrface; 10.04.2019