Skip to main content

Обновление .NET до новой версии

В данном примере .NET обновляется до версии 10 под WSL:Ubuntu. В проектах используется база PostgreS, для нее также будут обновлены пакеты поддержки.

Нужно обновить SDK, TargetFramework и все основные пакеты EF/Npgsql.

Проверить установленный SDK

В WSL:

dotnet --list-sdks

Если .NET 10 отсутствует, установить его.

Для Ubuntu/WSL:

sudo apt update
sudo apt install dotnet-sdk-10.0

Потом проверить:

dotnet --list-sdks

Должно появиться что-то вроде:

8.0.xxx
10.0.xxx

Обновить global.json (если есть)

Проверьте:

find . -name global.json

Если файл есть и содержит:

{
  "sdk": {
    "version": "8.0.127"
  }
}

то либо удалить его, либо изменить на:

{
  "sdk": {
    "version": "10.0.100"
  }
}

(точную версию смотрите в dotnet --list-sdks)

Очень полезная команда:

dotnet --info

В выводе будет что-то вроде:

.NET SDK:
 Version:   8.0.127

global.json file:
  /home/devadmin/projects/global.json

или

global.json file:
  Not found

Тогда сразу видно, какой файл фиксирует версию SDK.

Обновить все csproj

Заменить:

<TargetFramework>net8.0</TargetFramework>

на

<TargetFramework>net10.0</TargetFramework>

Можно массово:

grep -R "TargetFramework" .

в файлах csproj нужно обновить только тег <TargetFramework> версии пакетов в <PackageReference> обновятся при обновлении EF Core.

Обновить EF Core

После перехода на net10:

dotnet add package Microsoft.EntityFrameworkCore --version 10.0.0
dotnet add package Microsoft.EntityFrameworkCore.Design --version 10.0.0
dotnet add package Microsoft.EntityFrameworkCore.Relational --version 10.0.0
dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL --version 10.0.0
dotnet add package EFCore.CheckConstraints --version 10.0.0

Обновить инструменты EF

Проверить:

dotnet tool list -g

Если EF старый:

dotnet tool update --global dotnet-ef

Проверить:

dotnet ef --version

Очистить и пересобрать

Из корня решения:

dotnet clean
find . -type d -name bin -exec rm -rf {} +
find . -type d -name obj -exec rm -rf {} +
dotnet restore
dotnet build