Udostępnij za pośrednictwem


Zgodność wersji

Zgodność z poprzednimi wersjami oznacza, że aplikacja opracowana dla określonej wersji platformy będzie działać w nowszych wersjach tej platformy. Program .NET Framework próbuje zmaksymalizować zgodność z poprzednimi wersjami: kod źródłowy napisany dla jednej wersji programu .NET Framework powinien być kompilowany w nowszych wersjach programu .NET Framework, a pliki binarne uruchamiane w jednej wersji programu .NET Framework powinny zachowywać się identycznie w nowszych wersjach programu .NET Framework.

Zgodność wersji aplikacji

Domyślnie aplikacja jest uruchamiana w wersji programu .NET Framework, dla którego została utworzona. Jeśli ta wersja nie jest obecna, a plik konfiguracji aplikacji nie definiuje obsługiwanych wersji, może wystąpić błąd inicjowania programu .NET Framework. W takim przypadku próba uruchomienia aplikacji zakończy się niepowodzeniem.

Aby zdefiniować określone wersje, na których działa aplikacja, dodaj jeden lub więcej <obsługiwanych elementówRuntime> do pliku konfiguracji aplikacji. Każdy <supportedRuntime> element zawiera listę obsługiwanej wersji środowiska uruchomieniowego, a pierwszy określa najbardziej preferowaną wersję i ostatnią, określając najmniej preferowaną wersję.

<configuration>
   <startup>
      <supportedRuntime version="v2.0.50727" />
      <supportedRuntime version="v4.0" />
   </startup>
</configuration>

Aby uzyskać więcej informacji, zobacz How to: Configure an App to Support .NET Framework 4 or 4.x (Jak skonfigurować aplikację do obsługi programu .NET Framework 4 lub 4.x).

Zgodność wersji składników

Aplikacja może kontrolować wersję programu .NET Framework, na której jest uruchomiona, ale składnik nie może. Składniki i biblioteki klas są ładowane w kontekście określonej aplikacji i dlatego są one automatycznie uruchamiane w wersji programu .NET Framework, na której działa aplikacja.

Ze względu na to ograniczenie gwarancje zgodności są szczególnie ważne dla składników. Począwszy od programu .NET Framework 4, można określić stopień, w jakim składnik ma pozostać zgodny w wielu wersjach, stosując System.Runtime.Versioning.ComponentGuaranteesAttribute atrybut do tego składnika. Narzędzia mogą używać tego atrybutu do wykrywania potencjalnych naruszeń gwarancji zgodności w przyszłych wersjach składnika.

Zgodność z poprzednimi wersjami

Program .NET Framework 4.5 i nowsze wersje są zgodne z poprzednimi wersjami aplikacji utworzonych we wcześniejszych wersjach programu .NET Framework. Innymi słowy, aplikacje i składniki utworzone w poprzednich wersjach będą działać bez modyfikacji w programie .NET Framework 4.5 i nowszych wersjach. Jednak domyślnie aplikacje działają w wersji środowiska uruchomieniowego języka wspólnego, dla którego zostały opracowane, więc może być konieczne udostępnienie pliku konfiguracji, aby umożliwić uruchamianie aplikacji w wersji .NET Framework 4.5 lub nowszej. Aby uzyskać więcej informacji, zobacz sekcję Zgodność wersji dla aplikacji we wcześniejszej części tego artykułu.

W praktyce ta zgodność może być uszkodzona przez pozornie niekonsekwencyjne zmiany w programie .NET Framework i zmiany w technikach programowania. Na przykład, ulepszenia wydajności w platformie .NET Framework 4.5 mogą uwidocznić zjawisko race condition, które nie wystąpiło we wcześniejszych wersjach. Podobnie, użycie twardo zdefiniowanej ścieżki do zestawów .NET Framework, porównywanie równości z określoną wersją .NET Framework oraz uzyskiwanie wartości pola prywatnego za pomocą refleksji nie są praktykami zgodnymi z wcześniejszymi wersjami. Ponadto każda wersja programu .NET Framework zawiera poprawki błędów i zmiany związane z zabezpieczeniami, które mogą mieć wpływ na zgodność niektórych aplikacji i składników.

Jeśli aplikacja lub składnik nie działa zgodnie z oczekiwaniami w programie .NET Framework 4.5 lub nowszej wersji, użyj następujących list kontrolnych:

Wykonywanie równoczesne

Jeśli nie możesz znaleźć odpowiedniego obejścia problemu, pamiętaj, że program .NET Framework 4.5 (lub jedna z jego wersji pośrednich) działa obok wersji 1.1, 2.0 i 3.5 i jest aktualizacją miejscową, która zastępuje wersję 4. W przypadku aplikacji przeznaczonych dla wersji 1.1, 2.0 i 3.5 można zainstalować odpowiednią wersję programu .NET Framework na maszynie docelowej, aby uruchomić aplikację w najlepszym środowisku. Aby uzyskać więcej informacji na temat wykonywania obok siebie, zobacz Wykonywanie obok siebie.

Zobacz także