Sdílet prostřednictvím


Upgrade na novou verzi .NET

Nové verze .NET se vydávají každý rok. Mnoho vývojářů zahájí proces upgradu hned, jak bude nová verze dostupná, zatímco ostatní čekají, až verze, kterou používají, se už nepodporuje. Proces upgradu má několik aspektů, které je potřeba zvážit.

Běžné důvody upgradu na novou verzi .NET:

  • Aktuálně použitá verze .NET se už nepodporuje.
  • Nová verze podporuje nový operační systém.
  • Nová verze má důležitou funkci rozhraní API, výkonu nebo zabezpečení.

Upgrade vývojového prostředí

Pokud chcete upgradovat na novou verzi .NET, je sada .NET SDK primární komponentou, která se má nainstalovat. Zahrnuje aktualizovanou verzi rozhraní příkazového řádku .NET, systém sestavení a verzi modulu runtime.

Web .NET nabízí instalační programy a archivy , které si můžete stáhnout a používat v jakémkoli podporovaném operačním systému a architektuře.

Některé operační systémy mají správce balíčků, který můžete použít také k instalaci nové verze .NET, kterou byste mohli preferovat.

Visual Studio automaticky nainstaluje nové verze sady .NET SDK. Pro uživatele sady Visual Studio stačí upgradovat na novější verzi sady Visual Studio.

Upgrade zdrojového kódu

Jedinou požadovanou změnou upgradu aplikace je aktualizace TargetFramework vlastnosti v souboru projektu na novější verzi .NET.

Zde je postup:

  • Otevřete soubor projektu (soubor *.csproj, *.vbprojnebo *.fsproj soubor).
  • <TargetFramework> Změňte hodnotu vlastnosti například net6.0 na net8.0.
  • Stejný vzor platí pro <TargetFrameworks> vlastnost, pokud se používá.

Návod

Modernizace aplikace GitHub Copilot - aktualizace může tyto změny provádět automaticky.

Dalším krokem je sestavení projektu (nebo řešení) pomocí nové sady SDK. Pokud jsou potřeba další změny, sada SDK zobrazí upozornění a chyby, které vás provedou.

Možná budete muset spustit dotnet workload restore obnovení úloh pomocí nové verze sady SDK.

Další zdroje informací:

Připnutí verze

Když upgradujete vývojové nástroje, jako jsou .NET SDK, Visual Studio nebo jiné komponenty, můžete narazit na nové chování, upozornění analyzátoru nebo rozbíjející změny, které ovlivňují váš proces sestavení. Připnutím na verzi můžete vývojové prostředí upgradovat a zároveň zachovat kontrolu nad tím, kdy se v projektech aktualizují konkrétní komponenty.

Připnutí verze nabízí několik výhod:

  • Předvídatelná sestavení: Zajišťuje konzistentní výsledky sestavení v různých počítačích a prostředích CI/CD.
  • Postupné přijetí: Umožňuje přijímat nové funkce postupně, nikoli všechny najednou.
  • Vyhněte se neočekávaným změnám: Zabrání novým pravidlům analyzátoru, chování sady SDK nebo verzím balíčků, aby způsobovaly selhání sestavení.
  • Koordinace týmu: Umožňuje týmům upgradovat společně v naplánovaném čase, nikoli jednotlivě při aktualizaci nástrojů.
  • Ladění a řešení problémů: Usnadňuje izolaci problémů tím, že můžete kontrolovat změny verzí.

Následující části popisují různé mechanismy řízení verzí různých komponent v projektech .NET:

Řízení verze sady SDK pomocí global.json

Verzi sady .NET SDK pro projekt nebo řešení můžete připnout pomocí souboruglobal.json . Tento soubor určuje verzi sady SDK, která se má použít při spouštění příkazů rozhraní příkazového řádku .NET CLI, a je nezávislá na verzi modulu runtime, kterou váš projekt cílí.

V kořenovém adresáři řešení vytvořte soubor global.json :

dotnet new globaljson --sdk-version 9.0.100 --roll-forward latestFeature

Tento příkaz vytvoří následující souborglobal.json , který připne sadu SDK na verzi 9.0.100 nebo jakoukoli novější opravu nebo rozsah funkcí v hlavní verzi 9.0:

{
  "sdk": {
    "version": "9.0.100",
    "rollForward": "latestFeature"
  }
}

Zásady rollForward řídí, jak je vybraná verze sady SDK, pokud není k dispozici přesná verze. Tato konfigurace zajišťuje, že při upgradu sady Visual Studio nebo instalaci nové sady SDK bude váš projekt nadále používat sadu SDK 9.0.x, dokud explicitně neaktualizujete souborglobal.json .

Další informace najdete v přehledu global.json.

Řízení chování analyzátoru

Analyzátory kódu můžou mezi verzemi zavádět nová upozornění nebo měnit chování. Pomocí vlastnosti můžete řídit verze analyzátoruAnalysisLevel, abyste zachovali konzistentní sestavení. Tato vlastnost umožňuje uzamknout konkrétní verzi pravidel analyzátoru, což brání zavedení nových pravidel při upgradu sady SDK.

<PropertyGroup>
  <AnalysisLevel>9.0</AnalysisLevel>
</PropertyGroup>

Pokud je tato možnost nastavená 9.0, jsou povolena pouze pravidla analyzátoru dodávaná s .NET 9, i když používáte sadu .NET 10 SDK. Tím zabráníte, aby nová pravidla analyzátoru .NET 10 ovlivnila vaše sestavení, dokud nebudete připravení je vyřešit.

Další informace naleznete v tématu AnalysisLevel.

Řízení verzí balíčků NuGet

Díky konzistentní správě verzí balíčků napříč projekty můžete zabránit neočekávaným aktualizacím a udržovat spolehlivé buildy.

Soubory uzamčení balíčků

Zamknutí souborů balíčků zajišťuje, aby operace obnovení balíčků používaly stejné verze balíčků v různých prostředích. Soubor zámku (packages.lock.json) zaznamenává přesné verze všech balíčků a jejich závislostí.

Povolení zamknutí souborů v souboru projektu:

<PropertyGroup>
  <RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
</PropertyGroup>

Aby se zajistilo, že sestavení selžou, pokud je soubor zámku zastaralý:

<PropertyGroup>
  <RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
  <RestoreLockedMode>true</RestoreLockedMode>
</PropertyGroup>

Po povolení zamykacích souborů spusťte příkaz dotnet restore pro vygenerování souboru packages.lock.json. Odevzdejte tento soubor do správy zdrojového kódu.

Centrální správa balíčků

Správa centrálních balíčků (CPM) umožňuje spravovat verze balíčků v jednom umístění pro všechny projekty v řešení. Tento přístup zjednodušuje správu verzí a zajišťuje konzistenci napříč projekty.

V kořenovém adresáři řešení vytvořte soubor Directory.Packages.props :

<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>

V souborech projektu odkazujte balíčky bez zadání verze:

<ItemGroup>
  <PackageReference Include="Azure.Identity" />
  <PackageReference Include="Microsoft.Extensions.AI" />
</ItemGroup>

Mapování zdrojů balíčku

Mapování zdrojů balíčků umožňuje řídit, které informační kanály NuGet se používají pro konkrétní balíčky, což zlepšuje zabezpečení a spolehlivost.

Konfigurace mapování zdroje v souborunuget.config :

<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>

Tato konfigurace zajišťuje, že se všechny balíčky začínající Contoso. obnoví pouze z kanálu contoso, zatímco ostatní balíčky pocházejí z nuget.org.

Další informace najdete v tématu Obnovení balíčku NuGet.

Řízení verze nástroje MSBuild

Visual Studio podporuje souběžnou instalaci více verzí. Můžete například nainstalovat Visual Studio 2026 a Visual Studio 2022 na stejný počítač. Každá verze sady Visual Studio obsahuje odpovídající sadu .NET SDK. Při aktualizaci sady Visual Studio se také aktualizuje zahrnutá verze sady SDK. Starší verze sady SDK ale můžete dál používat tak, že je nainstalujete odděleně od stránky pro stažení .NET.

Verze nástroje MSBuild odpovídají verzím sady Visual Studio. Například Visual Studio 2022 verze 17.8 obsahuje MSBuild 17.8. Sada .NET SDK také obsahuje nástroj MSBuild. Při použití dotnet build používáte verzi nástroje MSBuild, která je součástí sady SDK určené souborem global.json nebo nejnovější nainstalované sady SDK.

Použití konkrétní verze nástroje MSBuild:

  • Používá se dotnet build s připnutou verzí sady SDK v global.json.
  • Spusťte příslušný příkazový řádek pro vývojáře sady Visual Studio, který nastaví prostředí pro danou verzi sady Visual Studio MSBuild.
  • Přímo vyvolat MSBuild z konkrétní instalace sady Visual Studio (například "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\MSBuild.exe").

Další informace najdete v tématu .NET SDK, MSBuild a Správa verzí sady Visual Studio.

Aktualizace kontinuální integrace (CI)

Kanály CI se řídí podobným procesem aktualizace jako soubory projektu a soubory Dockerfile. Kanály CI můžete obvykle aktualizovat změnou pouze hodnot verzí.

Aktualizace hostitelského prostředí

Existuje mnoho vzorů, které se používají pro hostování aplikací. Pokud hostitelské prostředí zahrnuje modul runtime .NET, je potřeba nainstalovat novou verzi modulu runtime .NET. V Linuxu se ale závislosti musí nainstalovat, obvykle se v různých verzích .NET nemění.

U kontejnerů je potřeba změnit příkazy tak, FROM aby zahrnovaly nová čísla verzí.

Následující příklad souboru Dockerfile ukazuje stažení image ASP.NET Core 9.0.

FROM mcr.microsoft.com/dotnet/aspnet:9.0

V cloudové službě, jako je Aplikace Azure Služba, je potřeba změnit konfiguraci.

Viz také