Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az új .NET-verziók minden évben megjelennek. Sok fejlesztő azonnal elindítja a frissítési folyamatot, amint az új verzió elérhető, míg mások megvárják, amíg a használt verzió már nem támogatott. A frissítési folyamatnak több szempontot is figyelembe kell vennie.
Az új .NET-verzióra való frissítés gyakori okai:
- A jelenleg használt .NET-verzió már nem támogatott
- Az új verzió támogatja az új operációs rendszert
- Az új verzió fontos API-val, teljesítménnyel vagy biztonsági funkcióval rendelkezik
Fejlesztési környezet frissítése
Az új .NET-verzióra való frissítéshez a .NET SDK az elsődleges telepíteni kívánt összetevő. Tartalmaz egy frissített .NET CLI-t, buildrendszert és futtatókörnyezeti verziót.
A .NET webhely telepítőket és archívumokat kínál, amelyeket bármilyen támogatott operációs rendszeren és architektúrán letölthet és használhat.
Egyes operációs rendszerek rendelkeznek csomagkezelővel, amellyel egy új .NET-verziót is telepíthet, amelyet érdemes lehet használni.
A Visual Studio automatikusan telepíti az új .NET SDK-verziókat. A Visual Studio felhasználóinak elegendő egy újabb Visual Studio-verzióra frissíteni.
Forráskód frissítése
Az alkalmazások frissítéséhez az egyetlen szükséges módosítás a projektfájl tulajdonságának TargetFramework frissítése az újabb .NET-verzióra.
Ennek menete a következő:
- Nyissa meg a projektfájlt (a
*.csproj,*.vbprojvagy*.fsproja fájlt). - Módosítsa a
<TargetFramework>tulajdonság értékét példáulnet6.0a következőrenet8.0: . - Ugyanez a minta vonatkozik a
<TargetFrameworks>tulajdonságra, ha használatban van.
Jótanács
A GitHub Copilot modernizációs csevegőügynöke automatikusan elvégezheti ezeket a módosításokat.
A következő lépés a projekt (vagy megoldás) létrehozása az új SDK-val. Ha további módosításokra van szükség, az SDK figyelmeztetéseket és hibákat jelez az Ön számára.
Előfordulhat, hogy futtatnia dotnet workload restore kell a számítási feladatok visszaállításához az új SDK-verzióval.
További források:
- Kompatibilitástörő változások a .NET 9-ben
- ASP.NET Core-alkalmazás migrálása
- A .NET MAUI frissítése .NET 7-ről .NET 8-ra
Verzió rögzítése
A fejlesztési eszközök, például a .NET SDK, a Visual Studio vagy más összetevők frissítésekor új viselkedések, elemző figyelmeztetések vagy a buildelési folyamatot érintő kompatibilitástörő változások jelentkezhetnek. Ha egy verzióra rögzít, frissítheti a fejlesztési környezetet, miközben szabályozhatja, hogy mikor frissülnek bizonyos összetevők a projektekben.
A verzió rögzítése számos előnnyel jár:
- Kiszámítható buildek: Konzisztens buildelési eredményeket biztosít a különböző gépeken és CI/CD-környezetekben.
- Fokozatos bevezetés: Lehetővé teszi az új funkciók fokozatos bevezetését, nem pedig egyszerre.
- Kerülje a váratlan módosításokat: Megakadályozza, hogy az új elemzőszabályok, az SDK-viselkedések vagy a csomagverziók buildelési hibákat okozzanak.
- Csapatkoordináció: Lehetővé teszi a csapatok számára, hogy a tervezett időpontban együtt frissítsenek, nem pedig egyenként, amikor az eszközök frissülnek.
- Hibakeresés és hibaelhárítás: Egyszerűbben elkülönítheti a problémákat, ha ön szabályozza, hogy mely verziók módosultak.
Az alábbi szakaszok a .NET-projektek különböző összetevőinek verzióinak vezérlésére szolgáló különböző mechanizmusokat ismertetik:
- A global.json fájl segítségével vezérelje az SDK-verziót
- Vezérlőelemző viselkedése
- NuGet-csomagverziók vezérlése
- Az MSBuild verzió szabályozása
A global.json fájl segítségével határozd meg az SDK verzióját
Egy projekt vagy megoldás .NET SDK-verzióját egyglobal.json fájl használatával rögzítheti. Ez a fájl megadja, hogy a .NET CLI-parancsok futtatásakor melyik SDK-verziót használja, és független a projekt által használt futtatókörnyezeti verziótól.
Hozzon létre egy global.json fájlt a megoldás gyökérkönyvtárában:
dotnet new globaljson --sdk-version 9.0.100 --roll-forward latestFeature
Ez a parancs a következő global.json fájlt hozza létre, amely az SDK-t a 9.0.100-es vagy újabb javításra vagy szolgáltatássávra rögzíti a 9.0-s főverzióban:
{
"sdk": {
"version": "9.0.100",
"rollForward": "latestFeature"
}
}
A rollForward szabályzat szabályozza az SDK-verzió kiválasztását, ha a pontos verzió nem érhető el. Ez a konfiguráció biztosítja, hogy a Visual Studio frissítésekor vagy egy új SDK telepítésekor a projekt továbbra is az SDK 9.0.x-et használja, amíg a global.json fájlt nem frissíti.
További információ: global.json áttekintés.
Vezérlőelemző viselkedése
A kódelemzők új figyelmeztetéseket vezethetnek be, vagy módosíthatják a verziók viselkedését. Az elemzőverziókat a tulajdonság használatával AnalysisLevelkonzisztens buildek fenntartásához szabályozhatja. Ez a tulajdonság lehetővé teszi az elemzőszabályok egy adott verziójának zárolását, megakadályozva az új szabályok bevezetését az SDK frissítésekor.
<PropertyGroup>
<AnalysisLevel>9.0</AnalysisLevel>
</PropertyGroup>
Ha be van 9.0állítva, csak a .NET 9-ben szállított elemzőszabályok vannak engedélyezve, még akkor is, ha a .NET 10 SDK-t használja. Ez megakadályozza, hogy az új .NET 10-elemzőszabályok hatással legyenek a buildre, amíg készen nem áll a megoldásukra.
További információ: AnalysisLevel.
NuGet-csomagverziók vezérlése
A csomagverziók projektek közötti konzisztens kezelésével megakadályozhatja a váratlan frissítéseket, és megbízható buildeket tarthat fenn.
Csomagzárolási fájlok
A csomagzárolási fájlok biztosítják, hogy a csomag-visszaállítási műveletek pontosan ugyanazokat a csomagverziókat használják különböző környezetekben. A zárolási fájl (packages.lock.json) rögzíti az összes csomag és azok függőségeinek pontos verzióit.
Fájlok zárolásának engedélyezése a projektfájlban:
<PropertyGroup>
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
</PropertyGroup>
Annak biztosítása érdekében, hogy a buildelés sikertelen legyen, ha a zárolási fájl elavult:
<PropertyGroup>
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
<RestoreLockedMode>true</RestoreLockedMode>
</PropertyGroup>
A zárolási fájlok engedélyezése után futtassa dotnet restore a packages.lock.json fájl létrehozásához. Véglegesítse ezt a fájlt a forrásvezérlőben.
Központi csomagkezelés
A központi csomagkezelés (CPM) lehetővé teszi a csomagverziók egyetlen helyen történő kezelését a megoldás összes projektje esetében. Ez a megközelítés leegyszerűsíti a verziókezelést, és biztosítja a projektek konzisztenciáját.
Hozzon létre egy Directory.Packages.props fájlt a megoldásgyökérben:
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="Azure.Identity" Version="1.17.0" />
<PackageVersion Include="Microsoft.Extensions.AI" Version="9.10.1" />
</ItemGroup>
</Project>
A projektfájlokban verzió megadása nélkül hivatkozzon a csomagokra:
<ItemGroup>
<PackageReference Include="Azure.Identity" />
<PackageReference Include="Microsoft.Extensions.AI" />
</ItemGroup>
Csomagforrás-leképezés
A csomagforrás-leképezés lehetővé teszi annak szabályozását, hogy mely NuGet-hírcsatornákat használják az adott csomagokhoz, ezáltal javítva a biztonságot és a megbízhatóságot.
A forrásleképezés konfigurálása a nuget.config fájlban:
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="contoso" value="https://contoso.com/packages/" />
</packageSources>
<packageSourceMapping>
<packageSource key="nuget.org">
<package pattern="*" />
</packageSource>
<packageSource key="contoso">
<package pattern="Contoso.*" />
</packageSource>
</packageSourceMapping>
</configuration>
Ez a konfiguráció biztosítja, hogy minden Contoso.-tal kezdődő csomag csak a contoso hírcsatornából legyen visszaállítva, míg a többi csomag a nuget.org hírcsatornából származik.
További információ: NuGet-csomag visszaállítása.
Az MSBuild verzió szabályozása
A Visual Studio több verzió egymás melletti telepítését támogatja. Telepítheti például a Visual Studio 2026-ot és a Visual Studio 2022-t ugyanazon a gépen. Minden Visual Studio-verzió tartalmaz egy .NET SDK-t. A Visual Studio frissítésekor a mellékelt SDK-verzió is frissül. A régebbi SDK-verziók azonban továbbra is használhatók, ha külön telepíti őket a .NET letöltési oldaláról.
Az MSBuild verziók a Visual Studio verzióinak felelnek meg. A Visual Studio 2022 17.8-es verziója például tartalmazza az MSBuild 17.8-at. A .NET SDK az MSBuildet is tartalmazza. Amikor a dotnet build-t használja, az global.json által megadott SDK-val vagy a legújabb telepített SDK-val járó MSBuild verziót használja.
Egy adott MSBuild-verzió használata:
- Használja a
dotnet buildfájlt rögzített SDK-verzióval a global.json fájlban. - Indítsa el a Visual Studio fejlesztői parancssorát, amely beállítja az adott Visual Studio-verzió MSBuild környezetét.
- Közvetlenül meghívja az MSBuild parancsot egy adott Visual Studio-telepítésből (például
"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\MSBuild.exe").
További információ: .NET SDK, MSBuild és Visual Studio verziószámozás.
Folyamatos integráció frissítése (CI)
A CI-folyamatok hasonló frissítési folyamatot követnek, mint a projektfájlok és a Docker-fájlok. A CI-folyamatokat általában csak a verzióértékek módosításával frissítheti.
Üzemeltetési környezet frissítése
Az alkalmazások üzemeltetéséhez számos minta használható. Ha az üzemeltetési környezet tartalmazza a .NET-futtatókörnyezetet, akkor telepíteni kell a .NET-futtatókörnyezet új verzióját. Linuxon a függőségeket telepíteni kell, de általában nem változnak a .NET-verziókban.
Tárolók esetében az utasításokat FROM úgy kell megváltoztatni, hogy új verziószámokat tartalmazzanak.
Az alábbi Dockerfile-példa egy ASP.NET Core 9.0-rendszerkép lekérését mutatja be.
FROM mcr.microsoft.com/dotnet/aspnet:9.0
Egy felhőszolgáltatásban, például Azure-alkalmazás szolgáltatásban konfigurációmódosításra van szükség.