Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A visszamenőleges kompatibilitás azt jelenti, hogy a platform egy adott verziójához kifejlesztett alkalmazás a platform későbbi verzióiban fog futni. A .NET-keretrendszer megpróbálja maximalizálni a visszamenőleges kompatibilitást: A .NET-keretrendszer egy verziójához írt forráskódnak a .NET-keretrendszer későbbi verzióira kell lefordítania, és a .NET-keretrendszer egy verzióján futó bináris fájloknak ugyanúgy kell viselkedniük a .NET-keretrendszer későbbi verzióiban.
Alkalmazások verziókompatibilitása
Alapértelmezés szerint egy alkalmazás a .NET-keretrendszer azon verzióján fut, amelyhez készült. Ha ez a verzió nem jelenik meg, és az alkalmazáskonfigurációs fájl nem határozza meg a támogatott verziókat, előfordulhat, hogy .NET-keretrendszer inicializálási hiba lép fel. Ebben az esetben az alkalmazás futtatásának kísérlete sikertelen lesz.
Ha meg szeretné határozni azokat a verziókat, amelyeken az alkalmazás fut, adjon hozzá egy vagy több <támogatottRuntime-elemet> az alkalmazás konfigurációs fájljához. Minden <supportedRuntime> elem felsorolja a futtatókörnyezet támogatott verzióját, az első pedig a legkedveltebb verziót, az utolsó pedig a legkevésbé előnyben részesített verziót adja meg.
<configuration>
<startup>
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0" />
</startup>
</configuration>
További információ : Alkalmazás konfigurálása a .NET-keretrendszer 4- vagy 4.x verziójának támogatásához.
Összetevők verziókompatibilitása
Egy alkalmazás szabályozhatja annak a .NET-keretrendszernek a verzióját, amelyen fut, de egy összetevő nem. Az összetevők és az osztálykódtárak egy adott alkalmazás környezetében töltődnek be, és ezért futnak automatikusan az alkalmazás által futtatott .NET-keretrendszer verzióján.
A korlátozás miatt a kompatibilitási garanciák különösen fontosak az összetevők számára. A .NET-keretrendszer 4-től kezdődően megadhatja, hogy egy összetevő milyen mértékben legyen kompatibilis több verzióban, ha alkalmazza az attribútumot az System.Runtime.Versioning.ComponentGuaranteesAttribute adott összetevőre. Az eszközök ezt az attribútumot arra használhatják, hogy észleljék a kompatibilitási garancia esetleges megsértését egy összetevő jövőbeli verzióiban.
Visszamenőleges kompatibilitás
A .NET-keretrendszer 4.5-ös és újabb verziói visszamenőlegesen kompatibilisek a .NET-keretrendszer korábbi verzióival készült alkalmazásokkal. Más szóval a .NET-keretrendszer 4.5-ös és újabb verzióin módosítás nélkül működnek a korábbi verziókból készült alkalmazások és összetevők. Alapértelmezés szerint azonban az alkalmazások azon a közös nyelvi futtatókörnyezeten futnak, amelyhez fejlesztették őket, ezért előfordulhat, hogy egy konfigurációs fájlt kell megadnia ahhoz, hogy az alkalmazás a .NET-keretrendszer 4.5-ös vagy újabb verzióin fusson. További információt a jelen cikk korábbi, Alkalmazások verziókompatibilitása című szakaszában talál.
A gyakorlatban ez a kompatibilitás megszakadhat a .NET-keretrendszer látszólag következetlen változásaival és a programozási technikák változásaival. A .NET-keretrendszer 4.5-ös teljesítménybeli fejlesztései például olyan versenyfeltételeket tehetnek közzé, amelyek nem történtek meg a korábbi verziókban. Hasonlóképpen, a .NET-keretrendszer-szerelvényekhez való szigorúan kódolt elérési út használata, a .NET-keretrendszer egy adott verziójával való egyenlőségi összehasonlítás, valamint a magánmezők értékének visszatükrözéssel történő lekérése nem kompatibilis a visszamenőlegesen kompatibilis eljárásokkal. A .NET-keretrendszer minden egyes verziója olyan hibajavításokat és biztonsági módosításokat is tartalmaz, amelyek befolyásolhatják egyes alkalmazások és összetevők kompatibilitását.
Ha az alkalmazás vagy összetevő nem a várt módon működik a .NET-keretrendszer 4.5-ös vagy újabb verziójában, használja az alábbi ellenőrzőlistákat:
Ha az alkalmazást úgy fejlesztették ki, hogy a .NET-keretrendszer bármely verzióján fusson a .NET-keretrendszer 4.0-s verziójától kezdve, tekintse meg az alkalmazáskompatibilitást a célzott .NET-keretrendszer verziója és az alkalmazás futtatásának verziója közötti módosítások listájának létrehozásához.
Ha .NET-keretrendszer 3.5-ös alkalmazással rendelkezik, tekintse meg a .NET-keretrendszer 4 migrálási problémáit is.
Ha .NET-keretrendszer 2.0-s alkalmazással rendelkezik, tekintse meg a .NET-keretrendszer 3.5 SP1 változásait is.
Ha .NET-keretrendszer 1.1-alkalmazással rendelkezik, tekintse meg a .NET-keretrendszer 2.0 változásait is.
Ha a .NET-keretrendszer 4.5-ös vagy annak pontkiadásaiban futtatandó meglévő forráskódot újrafordít, vagy ha olyan alkalmazás vagy összetevő új verzióját fejleszti ki, amely a .NET-keretrendszer 4.5-ös verzióját vagy egy meglévő forráskódbázisból származó pontkiadásait célozza, ellenőrizze, hogy az osztálytárban elavult típusok és tagok vannak-e, és alkalmazza a leírt kerülő megoldást. (A korábban lefordított kód továbbra is az elavultként megjelölt típusok és tagok ellen fog futni.)
Ha azt állapítja meg, hogy a .NET-keretrendszer 4.5-ös módosítása megszakította az alkalmazást, ellenőrizze a Futtatókörnyezet beállításai sémát, és különösen az
<AppContextSwitchOverrides>elemet annak megállapításához, hogy használhat-e futtatókörnyezet-beállítást az alkalmazás konfigurációs fájljában az előző viselkedés visszaállításához.Ha nem dokumentált problémát tapasztal, nyisson meg egy problémát a .NET fejlesztői közösségi webhelyén , vagy nyisson meg egy hibát a Microsoft/dotnet GitHub adattárban.
Egymás melletti végrehajtás
Ha nem talál megfelelő megoldást a problémához, ne feledje, hogy a .NET-keretrendszer 4.5 (vagy annak egyik pontkiadása) az 1.1, 2.0 és 3.5 verzióval párhuzamosan fut, és helybenhagyott frissítésként felváltja a 4-es verziót. Az 1.1-es, 2.0-s és 3.5-ös verziót megcélzott alkalmazások esetében a .NET-keretrendszer megfelelő verzióját telepítheti a célgépre, hogy az alkalmazás a legjobb környezetben fusson. További információ az egymás melletti végrehajtásról: Egymás melletti végrehajtás.