Frissítés új .NET-verzióra

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 *.fsproj a fájlt).
  • Módosítsa a <TargetFramework> tulajdonság értékét például net6.0 a következőre net8.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:

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 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 build fá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.

Lásd még