| Termin | Definicja |
|---|---|
| Kompatybilność wersji .NET | Kompatybilność wersji .NET określa, które wydanie tej platformy jest wymagane do uruchomienia kodu osadzonego w bazie. Co oznacza zgodność wydania .NET z aplikacjąKompatybilność wersji .NET opisuje relację między aplikacją, bibliotekami użytymi podczas jej budowania oraz środowiskiem uruchomieniowym obecnym na komputerze. Program jest tworzony dla określonego celu kompilacji, na przykład .NET Framework 4.8, .NET 6, .NET 7 lub .NET 8. Informacja o tym celu znajduje się w projekcie i wpływa na sposób kompilowania kodu, dobór bibliotek oraz wymagania instalacyjne. Sam fakt, że na komputerze znajduje się „jakiś .NET”, nie oznacza jeszcze, że każda aplikacja oparta na tej platformie będzie mogła się uruchomić. Trzeba rozróżnić przede wszystkim .NET Framework od współczesnego .NET, rozwijanego wcześniej między innymi jako .NET Core. .NET Framework jest środowiskiem przeznaczonym głównie dla systemu Windows i obejmuje między innymi platformę CLR, biblioteki klas oraz składniki współpracujące z systemem. Współczesny .NET ma inną organizację instalacji i może działać na kilku systemach operacyjnych. Aplikacja przeznaczona dla .NET Framework nie staje się automatycznie aplikacją dla .NET 8, a program skompilowany dla .NET 8 nie może być uruchamiany przez samą instalację .NET Framework. Target framework, runtime i biblioteki zależneW dokumentacji projektu najważniejszą informacją jest tak zwany target framework, czyli docelowa platforma kompilacji. Przykładowe oznaczenia to Osobnym elementem jest runtime, czyli środowisko potrzebne do uruchomienia gotowego programu. Współczesny .NET rozdziela między innymi pakiet .NET Runtime, przeznaczony do uruchamiania aplikacji, oraz .NET SDK, zawierający narzędzia do budowania, testowania i publikowania. Do działania programu zwykle nie jest potrzebny pełny SDK, ale wymagany runtime musi odpowiadać rodzinie platformy wskazanej przez aplikację. Znaczenie ma również typ publikacji. Aplikacja wdrożona jako framework-dependent korzysta z runtime zainstalowanego w systemie, natomiast publikacja self-contained zawiera własne środowisko uruchomieniowe dla wybranej platformy i architektury. Kompatybilność zależy także od bibliotek zewnętrznych. Pakiet NuGet może wspierać kilka target frameworków, lecz nie musi obsługiwać każdego wydania .NET. Podczas przywracania zależności narzędzia wybierają zgodną wersję biblioteki według deklaracji projektu. W starszych aplikacjach .NET Framework dodatkowym problemem bywają konflikty wersji assembly, czyli skompilowanych bibliotek .NET. Dwie zależności mogą wymagać różnych wersji tego samego pliku, co prowadzi do błędów ładowania biblioteki albo do konieczności użycia prawidłowej konfiguracji wiązania zależności. Jak rozpoznać problem z wersją podczas uruchamianiaObjawy niezgodności mogą wystąpić przed pojawieniem się głównego okna aplikacji. System może zgłosić brak wymaganego środowiska, brak pliku DLL, nieobsługiwaną platformę albo błąd ładowania assembly. W aplikacjach .NET Framework często pojawiają się wyjątki takie jak W systemie Windows podstawowym krokiem jest sprawdzenie, jaki rodzaj platformy wymaga aplikacja. Informację można znaleźć w dokumentacji producenta, pliku projektu, komunikacie instalatora albo właściwościach pakietu dostarczonego z programem. Dla współczesnego .NET dostępne środowiska można wyświetlić poleceniem Ważna jest różnica między zgodnością wsteczną a pełną zamiennością. Nowsze wydanie tej samej rodziny platformy często obsługuje aplikacje przeznaczone dla wcześniejszego wydania, ale zależy to od rodzaju .NET i sposobu uruchamiania. Zmiana wersji może też ujawnić różnice w zachowaniu bibliotek, konfiguracji lub narzędzi. Współczesny .NET stosuje reguły roll-forward, które mogą pozwolić aplikacji użyć nowszego zainstalowanego runtime, lecz zasada ta nie zastępuje zgodności między .NET Framework a współczesnym .NET. Bezpieczna diagnoza wymaga więc odczytania wymaganego target framework, runtime, architektury procesu oraz listy zależności. Postępowanie przy niezgodności środowiska .NETNaprawę należy rozpocząć od zapisania dokładnego komunikatu błędu i ustalenia, czy problem pojawia się podczas instalacji, przy starcie programu, czy dopiero przy użyciu określonej funkcji. Następnie sprawdza się wymagane wydanie platformy, zainstalowane runtime oraz architekturę systemu i aplikacji. Instalowanie przypadkowych pakietów .NET może nie rozwiązać problemu, ponieważ aplikacja może wymagać konkretnej rodziny platformy albo biblioteki dodatkowej, a nie dowolnej nowszej wersji. Jeżeli aplikacja jest rozwijana lokalnie, zgodność poprawia się przez jawne określenie target framework w projekcie, aktualizację zależności do wersji wspierających ten cel oraz ponowne przywrócenie pakietów i zbudowanie programu. W przypadku starszego .NET Framework trzeba zweryfikować również konfigurację pliku aplikacji, wersje wymaganych assembly i ewentualne przekierowania wiązania. Przy wdrażaniu współczesnego .NET należy dobrać właściwy runtime, system operacyjny i architekturę publikacji. Nie każdą różnicę da się usunąć samą instalacją środowiska, ponieważ część aplikacji wymaga przebudowania kodu lub wersji biblioteki. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i ich podzespołów, dlatego w przypadku problemu z uruchomieniem programu można zlecić sprawdzenie systemu, zainstalowanych składników .NET, zależności aplikacji oraz zgodności środowiska z konfiguracją komputera. |