Mam wcześniej istniejącą aplikację ASP.NET Core 3.0 , która została pomyślnie wdrożona w usłudze Azure App Service (przy użyciu AspNetCoreModuleV2
modułu). Po uaktualnieniu aplikacji do (dzisiejsza wersja) ASP.NET Core 3.1 aplikacja kompiluje się i działa poprawnie na mojej lokalnej wersji IIS Express . Podczas próby opublikowania w usłudze Azure App Service przy użyciu (dzisiejszej wersji) programu Visual Studio 16.4 pojawia się jednak następujący błąd:
Plik zasobów „C: \ Project \ obj \ project.assets.json” nie ma celu dla „.NETCoreApp, Version = v3.0”. Upewnij się, że proces przywracania został uruchomiony i że dołączono „netcoreapp3.0” do TargetFrameworks dla swojego projektu.
Notatki
- Wszystko
<PackageReference>
„s doMicrosoft.AspNetCore
,Microsoft.EntityFrameworkCore
iMicrosoft.Extensions
zostały zaktualizowane3.1.0
- Wyczyściłem moje rozwiązanie, a nawet nukowałem mój
obj
folder, aby upewnić się, że nie ma żadnych odniesień. - Ten błąd jest generowany z
3.1.100
wersjiMicrosoft.PackageDependencyResolution.targets
.
Rozumiem, że coś nadal wisi na zależnościach .NET Core 3.0 . Ale nie jest jasne, dlaczego powoduje to problemy tylko podczas wdrażania. Czy usługa Azure App Service nie jest jeszcze gotowa na platformę .NET Core 3.1 ? Czy jest to problem z celami rozwiązywania zależności?
źródło
asp.net-core-3.1
. Brakowało mi reputacji niezbędnej do utworzenia nowego tagu.<TargetFramework>
ustawienie wpubxml
profilu, że Visual Studio opiera się na, na której rozmieszczone. Ups! Zmiana wnetcoreapp3.1
celu dopasowania docsproj
celu rozwiązuje natychmiastowy problem. (Wprowadza to nowy problem z wyzwalaniem samej usługi Azure App Service w celu, ale prawdopodobnie można go rozwiązać za pomocą samodzielnego wdrożenia, podobnego do podanego linku.) Dziękujemy za wskazanie mi właściwego kierunku!Odpowiedzi:
Natychmiastowy problem - jak wskazano w pierwotnym pytaniu - dotyczy dwóch miejsc, w których
<TargetFramework>
jest ustawiony:csproj
)pubxml
)<TargetFramework>
Muszą być aktualizowane w obu miejscach, a oni muszą pasować dokładnie . W przeciwnym razie, wydawnictwa nie będą mogli znaleźć swoje cele wproject.assets.json
pliku, który jest zbudowany w oparciu o<TargetFramework>
wcsjproj
pliku.Edytor tekstu
Aby dokonać tej modyfikacji za pomocą edytora tekstu,
~/Properties/PublishProfiles
folder.*.pubxml
który chcesz edytować.<TargetFramework>
nanetcoreapp3.1
:Visual Studio 2019
Aby wprowadzić tę modyfikację za pomocą programu Visual Studio 2019 IDE,
netcoreapp3.1
, kliknij ikonę edycji obok niej.netcoreapp3.1
.Jeszcze raz dziękuję @PanagiotisKanavos za wskazanie mi właściwego kierunku (patrz komentarze do oryginalnego wątku).
źródło
pubx
plik, jak wyjaśniłeś, nadal był w wersji 3.0. Bardzo frustrujące. Szczerze mówiąc, nie miałem nic oprócz dziwnych, niejasnych i całkowicie pokazujących zatrzymywanie błędów i problemów od czasu wydania VS 16.3 i .NET Core 3.0. Dzięki jeszcze raz!HTTP Error 500.30 - ANCM In-Process Start Failure
wiadomości z mojej oryginalnej wiadomości. Wcześniej wymagało to opublikowania w pełni samodzielnej dystrybucji aplikacji. (To powiedziawszy, zwykle opóźnienie między nową wersją platformy .NET Core jest 2-3-dniowe a jej integracja ze środowiskiem usługi Azure App Service , więc warto o tym wiedzieć w przyszłych aktualizacjach.)Otwórz folder projektu;
Otwórz plik FolderProfile.pubxml, a następnie zmień wersję 3.0 na 3.1
netcoreapp3.1
Na koniec przebuduj aplikację przed opublikowaniem
źródło
pubxml
ręcznej modyfikacji pliku, a zwłaszcza biorąc pod uwagę głupotę modyfikacji tych wartości za pomocą graficznego interfejsu użytkownika Visual Studio 2019 . Włączyłem te szczegóły do mojej oryginalnej odpowiedzi, więc ta opcja jest wyraźnie wyjaśniona. Dziękuję Ci!zmiana
pracuje dla mnie.
źródło
Microsoft.AspNetCore
biblioteki należy zaktualizować3.1.0
zgodnie z uwagami do wydania Microsoft v3.1. Twoje podejście może być poprawną poprawką dla podobnych problemów w programie ASP.NET Core 2.2 , zakładając, że błąd nie był spowodowany niedopasowaniem między tobącsproj
apubx
plikami, tak jak w moim przypadku.