Nie znaleziono określonej struktury „Microsoft.AspNetCore.App”, wersja „3.1.0” dla aplikacji sieci Web platformy Linux Azure

9

Problem

Po uaktualnieniu .NET Core 2.2 Linux Web App do .Net Core 3.1 na platformie Azure aplikacja nie działa z Specified framework 'Microsoft.AspNetCore.App', version '3.1.0' was not foundbłędem. Poszedłem nawet tak daleko, aby stworzyć nową Linuksową aplikację sieci Web z .Net Core 3.1, a po wierszu poleceń bash nadal wyświetla się dotnet --list-runtimesjako 2.2.7.

Detale

Witryna nie działa

Błąd aplikacji

Logstream

aplikacja raportująca jest wyłączona, ponieważ nie może znaleźć .net core 3.1.

Logstream

Utworzono nową aplikację sieci web .net core

3.1 Aplikacja web linux w North Central, ten sam problem

Utworzono nową aplikację internetową

Upewnij się, że działa w północno-środkowych Stanach Zjednoczonych

Według https://aspnetcoreon.azurewebsites.net/ , powinien mieć pełne wsparcie .netCore 3.1

Wciąż .net core 2.2.7 cmd monit 2.2.7

opt/dotnet/runtimes wymienia 3, 3.0 i 3.0.0, ale nie 3.1 wprowadź opis zdjęcia tutaj

Zmienne środowiska

Moje zmienne środowiskowe na liście platformy Azure FRAMEWORK_VERSION = ltszamiast 3.1

Wydawniczy

Zostało to opublikowane z potoku Lazur Devops ci przy użyciu zadania Azure AppService Deploy. 3.1 nie było tutaj dostępne, więc wybrałemLTS

Proces wydawania Devops

Aktualizacja 1

Wygląda na to, że winowajcą brakuje 3.1 ze stosu struktury w zadaniach aplikacji sieci Web / usługi Azure Devops.

Ilekroć publikuję z CI, platforma aplikacji sieci Web jest aktualizowana do wszystkiego, co zostanie wybrane w tym menu rozwijanym. Jeśli ręcznie zmienię ramę na 3.1 w aplikacji Azure Web App, witryna się pojawi. Ale potem kolejna publikacja wraca w dół, ponieważ przywraca ramę do ustawień w ci.

Nowe pytanie

Jak mogę uzyskać potoku Azure Devops Release do opublikowania zadania .net core 3.1?

Aktualizacja 2

Powiązany post na platformie Azure Devops

Obecnie badane na dzień 23.02.2020

.Net Core 3.1 wdraża potok w usłudze Linux App Service

Sugerowane obejścia

  1. Użyj YML do wydania potoku i ręcznie zmień wersję z 3.0na 3.1, zaznaczoną przez odpowiedź i ten wątek
  2. Uaktualnij z framework dependentwersji do self contained. Odniesienie
  3. Zmień na wersję .NetCore 3.0
w00ngy
źródło
Zamiast korzystać z LTS, spróbuj użyć najnowszego (nie jest to zalecane, ale spróbuj mimo to sprawdzić, czy działa, czy nie)
Manish
Zrobiłem to i to nie zadziałało. Ale CI wydaje się być problemem. Za każdym razem, gdy publikuję w CI, zmienia ona strukturę aplikacji internetowej na wszystko, co zostanie wybrane w CI. Jeśli po opublikowaniu CI przejdę do usługi aplikacji i ręcznie zmienię stos środowiska wykonawczego na 3.1, witryna pojawia się do następnej publikacji.
w00ngy
NIE publikuj obrazów kodu, danych, komunikatów o błędach itp. - skopiuj lub wpisz tekst w pytaniu. Jak zapytać
Rob

Odpowiedzi:

2

Zetknąłem się z tą samą sytuacją, korzystając z podanych informacji, udało mi się rozwiązać problem, ustawiając wartość ręcznie w pliku .yml kompilacji Devops Pipelines. Wygląda na to, że po prostu brakuje im wartości z rozwijanego stosu RunTime. Jeśli ręcznie zaktualizujesz plik .yml procesów kompilacji, jak pokazano tutaj:

wprowadź opis zdjęcia tutaj

Spowoduje to wybranie odpowiedniej wersji frameworka. Mamy nadzieję, że to rozwiąże problem z wdrożeniem potoku Azure Devops CI.

Taran Beekhuis
źródło
Zastanawiałem się, czy to rozwiąże problem. Spróbuję spróbować. Może to być trochę pracy dla mnie, aby przekonwertować całą moją wersję na yml, więc jeszcze tego nie próbowałem. Dam ci znać wyniki! Doceń odpowiedź !!
w00ngy
2
Wydaje się, że można wpisać ciąg DOTNETCORE | 3.1 bezpośrednio w polu Runtime Stack (i to rozwiązuje problem) - więc nie trzeba konwertować potoku wydania na yaml!
rdavisau
Chciałem tylko powiedzieć to samo, co @rdavisau - najłatwiejszym rozwiązaniem jest nadpisanie wersji 3.1 w polu Runtime Stack i wydaje się, że bierze wartość.
Czy Appleby
NIE publikuj obrazów kodu, danych, komunikatów o błędach itp. - skopiuj lub wpisz tekst w pytaniu. Jak zapytać
Rob
rdavisau - zaoszczędziłoby mi to dużo czasu! lol.
w00ngy
1

Łatwiejszym rozwiązaniem jest pisanie DOTNETCORE|3.1 w rozwijanym stosie Runtime Stack w devops. (Dzięki rdavisau!)

wprowadź opis zdjęcia tutaj

w00ngy
źródło