Указанная платформа Microsoft.AspNetCore.App версии 3.1.0 не найдена для Linux Azure WebApp.

9

проблема

После обновления .Net Core 2.2 Linux Web App до .Net Core 3.1 в Azure приложение не работает с Specified framework 'Microsoft.AspNetCore.App', version '3.1.0' was not foundошибкой. Я даже зашел так далеко, что создал новое веб-приложение для Linux с .Net Core 3.1, и после командной строки bash все еще выводил dotnet --list-runtimesкак 2.2.7.

подробности

Сайт не работает

Ошибка приложения

Logstream

приложение для отчетов не работает, потому что оно не может найти ядро ​​.net 3.1.

Logstream

Создано новое основное веб-приложение .net

3.1 веб-приложение Linux в Северной и Центральной, та же проблема

Создано новое веб-приложение

Гарантировал, что это бежало в Северном Центральном США.

Согласно https://aspnetcoreon.azurewebsites.net/ , должна иметь полную поддержку .netCore 3.1

Все еще .net ядро ​​2.2.7 cmd подскажите 2.2.7

opt/dotnet/runtimes списки 3, 3.0 и 3.0.0, но нет 3.1` введите описание изображения здесь

Переменные среды

Мои переменные среды в списке Azure FRAMEWORK_VERSION = ltsвместо 3.1

Издательский

Это было опубликовано в конвейере Azure Devops ci с помощью задачи Azure AppService Deploy. 3.1 здесь не было, поэтому я выбралLTS

Devops выпустит конвейер

Обновление 1

Похоже, виновник отсутствует в стеке платформы в задачах веб-приложения Azure Devops / веб-службы.

Всякий раз, когда я публикуюсь из CI, платформа веб-приложения обновляется до того, что выбрано в этом раскрывающемся списке. Если я вручную перейду с фреймворка на 3.1 в веб-приложении Azure, появится сайт. Но затем следующая публикация возвращается обратно, потому что возвращает фреймворк обратно к настройкам в ci.

Новый вопрос

Как получить конвейер выпуска Azure Devops для публикации задачи .net core 3.1?

Обновление 2

Связанное сообщение форума Azure Devops

В настоящее время ведется расследование по состоянию на 23.02.2020 г.

.Net Core 3.1 развернуть конвейер для службы приложений Linux

Предлагаемые обходные пути

  1. Используйте YML для конвейера выпуска и вручную измените версию с 3.0на 3.1, отмеченную ответом и этим потоком.
  2. Обновление с framework dependentверсии до self contained. Ссылка
  3. Переход на .NetCore 3.0
w00ngy
источник
Вместо использования LTS, пожалуйста, попробуйте использовать последний (это не рекомендуется, но попробуйте в любом случае, увидите, работает ли он или нет)
Маниш
Я сделал, и это не сработало. Но CI, кажется, проблема. Каждый раз, когда я публикуюсь с CI, это меняет структуру веб-приложения на то, что выбрано в CI. Если я захожу в службу приложений после публикации CI и вручную изменяю стек времени выполнения на 3.1, сайт появляется до следующей публикации.
w00ngy
НЕ размещайте изображения кода, данных, сообщений об ошибках и т. Д. - скопируйте или введите текст в вопрос. Как спросить
Роб

Ответы:

2

Я столкнулся с той же ситуацией, используя предоставленную вами информацию. Я смог решить проблему, установив значение вручную в файле Devym Pipelines Build .yml. Кажется, им просто не хватает значения из выпадающего списка RunTime Stack. Если вы вручную обновите файл .yml процессов сборки, как показано здесь:

введите описание изображения здесь

Это выберет правильную версию фреймворка. Надеемся, что это исправит вашу проблему с развертыванием Azure Devops CI Pipeline.

Таран Бикхуис
источник
Я задавался вопросом, решит ли это это. Я попробую дать ему шанс. Для меня может потребоваться небольшая работа по преобразованию всего выпуска в yml, поэтому я еще не пробовал. Я дам вам знать результаты! Ценю ответ !!
w00ngy
2
Кажется, можно ввести строку DOTNETCORE | 3.1 непосредственно в поле Stack Runtime (и это решает проблему) - поэтому нет необходимости преобразовывать конвейер выпуска в yaml!
rdavisau
Я просто собирался сказать то же самое, что и @rdavisau - самое простое решение - переписать версию 3.1 в поле Runtime Stack, и оно, похоже, принимает значение.
Уилл Эпплби
НЕ размещайте изображения кода, данных, сообщений об ошибках и т. Д. - скопируйте или введите текст в вопрос. Как спросить
Роб
rdavisau - это сэкономило бы мне много времени! лол.
w00ngy
1

Более простое решение - ввести DOTNETCORE|3.1выпадающий список в стеке времени выполнения. (Спасибо, Рдависау!)

введите описание изображения здесь

w00ngy
источник