Bagikan melalui


Tingkatkan ke versi .NET baru

Versi .NET baru dirilis setiap tahun. Banyak pengembang memulai proses peningkatan segera setelah versi baru tersedia, sementara yang lain menunggu hingga versi yang mereka gunakan tidak lagi didukung. Proses peningkatan memiliki beberapa aspek yang perlu dipertimbangkan.

Alasan umum untuk meningkatkan ke versi .NET baru:

  • Versi .NET yang saat ini digunakan tidak lagi didukung
  • Versi baru mendukung sistem operasi baru
  • Versi baru memiliki fitur API, performa, atau keamanan penting

Meningkatkan lingkungan pengembangan

Untuk meningkatkan ke versi .NET baru, .NET SDK adalah komponen utama untuk diinstal. Ini termasuk .NET CLI, sistem build, dan versi runtime yang diperbarui.

Situs web .NET menawarkan alat penginstal dan arsip yang dapat Anda unduh dan gunakan pada sistem operasi dan arsitektur apa pun yang didukung.

Beberapa sistem operasi memiliki manajer paket yang juga dapat Anda gunakan untuk menginstal versi .NET baru, yang mungkin Anda sukai.

Visual Studio menginstal versi .NET SDK baru secara otomatis. Untuk pengguna Visual Studio, cukup untuk meningkatkan ke versi Visual Studio yang lebih baru.

Meningkatkan kode sumber

Satu-satunya perubahan yang diperlukan untuk meningkatkan aplikasi adalah memperbarui TargetFramework properti dalam file proyek ke versi .NET yang lebih baru.

Berikut cara untuk melakukannya:

  • Buka file proyek ( *.csprojfile , *.vbproj, atau *.fsproj ).
  • <TargetFramework> Ubah nilai properti dari, misalnya, net6.0 menjadi net8.0.
  • Pola yang sama berlaku untuk <TargetFrameworks> properti jika sedang digunakan.

Petunjuk / Saran

Kemampuan modernisasi dan peningkatan aplikasi GitHub Copilot dapat membuat perubahan ini secara otomatis.

Langkah selanjutnya adalah membangun proyek (atau solusi) dengan SDK baru. Jika perubahan tambahan diperlukan, SDK akan memberikan peringatan dan kesalahan yang memandu Anda.

Anda mungkin perlu menjalankan dotnet workload restore untuk memulihkan beban kerja dengan versi SDK baru.

Sumber daya lainnya:

Penyematan versi

Saat Anda meningkatkan alat pengembangan seperti .NET SDK, Visual Studio, atau komponen lainnya, Anda mungkin menemukan perilaku baru, peringatan dari analisis, atau perubahan yang merusak yang memengaruhi proses build Anda. Dengan menyematkan ke versi tertentu, Anda dapat meningkatkan environment pengembangan Anda sambil mempertahankan kontrol kapan komponen tertentu diperbarui dalam proyek Anda.

Penyematan versi memberikan beberapa manfaat:

  • Build yang dapat diprediksi: Memastikan hasil build yang konsisten di berbagai komputer dan lingkungan CI/CD.
  • Adopsi bertahap: Memungkinkan Anda mengadopsi fitur baru secara bertahap daripada semua sekaligus.
  • Hindari perubahan tak terduga: Mencegah aturan penganalisis baru, perilaku SDK, atau versi paket menyebabkan kegagalan build.
  • Koordinasi tim: Memungkinkan tim untuk meningkatkan bersama pada waktu yang direncanakan daripada secara individual saat alat diperbarui.
  • Penelusuran kesalahan dan pemecahan masalah: Memudahkan untuk mengisolasi masalah saat Anda mengontrol versi mana yang berubah.

Bagian berikut menjelaskan berbagai mekanisme untuk mengontrol versi komponen yang berbeda dalam proyek .NET Anda:

Mengontrol versi SDK dengan global.json

Anda dapat menyematkan versi .NET SDK untuk proyek atau solusi dengan menggunakan file global.json . File ini menentukan versi SDK mana yang akan digunakan saat menjalankan perintah .NET CLI dan tidak bergantung pada versi runtime target proyek Anda.

Buat file global.json di direktori akar solusi Anda:

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

Perintah ini membuat file global.json berikut yang menyematkan SDK ke versi 9.0.100 atau patch atau band fitur yang lebih baru dalam versi utama 9.0:

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

Kebijakan rollForward mengontrol bagaimana versi SDK dipilih saat versi yang tepat tidak tersedia. Konfigurasi ini memastikan bahwa saat Anda meningkatkan Visual Studio atau menginstal SDK baru, proyek Anda terus menggunakan SDK 9.0.x hingga Anda memperbarui file global.json secara eksplisit.

Untuk informasi selengkapnya, lihat gambaran umumglobal.json.

Mengontrol perilaku penganalisis

Penganalisis kode dapat memperkenalkan peringatan baru atau mengubah perilaku antar versi. Anda dapat mengontrol versi penganalisis untuk mempertahankan build yang konsisten dengan menggunakan AnalysisLevel properti . Properti ini memungkinkan Anda untuk mengunci ke versi aturan penganalisis tertentu, mencegah aturan baru diperkenalkan saat Anda meningkatkan SDK.

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

Saat diatur ke 9.0, hanya aturan penganalisis yang disertakan dalam .NET 9 yang diizinkan, bahkan jika Anda menggunakan .NET 10 SDK. Ini mencegah aturan penganalisis .NET 10 baru memengaruhi build Anda hingga Anda siap untuk mengatasinya.

Untuk informasi selengkapnya, lihat AnalysisLevel.

Mengontrol versi paket NuGet

Dengan mengelola versi paket secara konsisten di seluruh proyek, Anda dapat mencegah pembaruan tak terduga dan mempertahankan build yang andal.

File kunci paket

File kunci paket memastikan bahwa operasi pemulihan paket menggunakan versi paket yang sama persis di berbagai lingkungan. File kunci (packages.lock.json) merekam versi yang tepat dari semua paket dan dependensinya.

Aktifkan file kunci dalam file proyek Anda:

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

Untuk memastikan build gagal jika file kunci sudah kedaluwarsa:

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

Setelah mengaktifkan file kunci, jalankan dotnet restore untuk menghasilkan file packages.lock.json . Terapkan file ini ke kontrol sumber.

Manajemen paket pusat

Manajemen paket pusat (CPM) memungkinkan Anda mengelola versi paket di satu lokasi untuk semua proyek dalam solusi. Pendekatan ini menyederhanakan manajemen versi dan memastikan konsistensi di seluruh proyek.

Buat file Directory.Packages.props di akar solusi Anda:

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

Dalam file proyek Anda, referensi paket tanpa menentukan versi:

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

Pemetaan sumber untuk paket

Pemetaan sumber paket memungkinkan Anda mengontrol umpan NuGet mana yang digunakan untuk paket tertentu, meningkatkan keamanan dan keandalan.

Konfigurasikan pemetaan sumber di file nuget.config Anda:

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

Konfigurasi ini memastikan bahwa semua paket yang dimulai dengan Contoso. hanya dipulihkan dari sumber contoso, sementara paket lain berasal dari nuget.org.

Untuk informasi selengkapnya, lihat Pemulihan paket NuGet.

Mengontrol versi MSBuild

Visual Studio mendukung penginstalan berdampingan dari beberapa versi. Misalnya, Anda dapat menginstal Visual Studio 2026 dan Visual Studio 2022 pada komputer yang sama. Setiap versi Visual Studio menyertakan .NET SDK yang sesuai. Saat Anda memperbarui Visual Studio, versi SDK yang disertakan juga diperbarui. Namun, Anda dapat terus menggunakan versi SDK yang lebih lama dengan menginstalnya secara terpisah dari halaman unduhan .NET.

Versi MSBuild sesuai dengan versi Visual Studio. Misalnya, Visual Studio 2022 versi 17.8 menyertakan MSBuild 17.8. .NET SDK juga menyertakan MSBuild. Saat Anda menggunakan dotnet build, Anda menggunakan versi MSBuild yang disertakan dengan SDK yang ditentukan oleh global.json atau SDK terbaru yang diinstal.

Untuk menggunakan versi MSBuild tertentu:

  • Gunakan dotnet build dengan versi SDK yang disematkan di global.json.
  • Luncurkan Prompt Perintah Pengembang Visual Studio yang sesuai, yang menyiapkan lingkungan untuk MSBuild versi Visual Studio tersebut.
  • Langsung panggil MSBuild dari penginstalan Visual Studio tertentu (misalnya, "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\MSBuild.exe").

Untuk informasi selengkapnya, lihat versi .NET SDK, MSBuild, dan Visual Studio.

Memperbarui integrasi berkelanjutan (CI)

Alur CI mengikuti proses pembaruan serupa seperti file proyek dan Dockerfiles. Biasanya, Anda dapat memperbarui alur CI dengan hanya mengubah nilai versi.

Memperbarui lingkungan hosting

Ada banyak pola yang digunakan untuk menghosting aplikasi. Jika lingkungan hosting menyertakan runtime .NET, maka versi baru runtime .NET perlu diinstal. Di Linux, dependensi perlu diinstal, namun, mereka biasanya tidak berubah di seluruh versi .NET.

Untuk kontainer, FROM pernyataan perlu diubah untuk menyertakan nomor versi baru.

Contoh Dockerfile berikut menunjukkan penarikan gambar ASP.NET Core 9.0.

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

Di layanan cloud seperti Azure App Service, diperlukan perubahan konfigurasi.

Lihat juga