Bu makalede Windows'da hangi .NET sürümlerinin desteklendiği, .NET'in nasıl yükleneceği ve SDK ile çalışma zamanı arasındaki farklar öğretilir.
.NET Framework'ün aksine. .NET, Windows sürümünüzle bağlantılı değildir. Windows'ta yalnızca tek bir .NET Framework sürümü yüklü olabilir. Ancak .NET tek başınadır ve bilgisayarınızda herhangi bir yere yüklenebilir. Bazı uygulamalar kendi .NET kopyalarını içerebilir.
Varsayılan olarak, yükleme yöntemi farklı bir dizin seçmediği sürece .NET bilgisayarınızdaki Program Files\dotnet dizinine yüklenir.
.NET, çalışma zamanı ve SDK'lardan oluşur. Çalışma zamanı .NET uygulamaları çalıştırır ve SDK, uygulama oluşturmak için kullanılır.
Doğru çalışma zamanını seçme
Windows için farklı uygulama türlerinin çalıştırılmasını sağlayan üç farklı çalışma zamanı vardır. SDK üç çalışma zamanını da içerir ve çalışma zamanı yükleyicisi ek çalışma zamanı içerebilir. Aşağıdaki tabloda belirli bir .NET yükleyicisine hangi çalışma zamanının dahil olduğu açıklanmaktadır:
Yükleyici
.NET Çalışma Zamanı'nı içerir
.NET Desktop Çalışma Zamanı'nı içerir
ASP.NET Core Çalışma Zamanı içerir
.NET Çalışma Zamanı
Yes
Hayır
Hayır
.NET Desktop Çalışma Zamanı
Yes
Evet
Hayır
ASP.NET Core Çalışma Zamanı
Hayır
Hayır
Evet
.NET SDK
Yes
Evet
Yes
Windows'ta tüm .NET uygulamalarını çalıştırabilmenizi sağlamak için hem ASP.NET Core Runtime'ı hem de .NET Desktop Runtime'ı yükleyin. ASP.NET Core Runtime web tabanlı uygulamalar, .NET Desktop Runtime ise Windows Presentation Foundation (WPF) veya Windows Forms uygulaması gibi masaüstü uygulamaları çalıştırır.
.NET'in nasıl yükleneceğini seçin
.NET'i yüklemenin farklı yolları vardır ve bazı ürünler kendi .NET sürümlerini yönetebilir. .NET'i kendi .NET sürümünü yöneten bir yazılım aracılığıyla yüklerseniz, sistem genelinde etkinleştirilmemiş olabilir. .NET'i diğer yazılımlar aracılığıyla yüklemenin etkilerini anladığınızdan emin olun.
Aşağıdaki bölümlerde yer alan listeleri gözden geçirdikten sonra hangi yöntemi seçmeniz gerektiğine emin değilseniz, büyük olasılıkla .NET Yükleyicisi'ni kullanmak istersiniz.
Visual Studio kullanarak .NET uygulamaları geliştirmek istediğinizde .NET yüklemek için Visual Studio'yu kullanın. Visual Studio kendi .NET kopyasını yönetir. Bu yöntem SDK, Çalışma Zamanı ve Visual Studio şablonlarını yükler.
.NET uygulamaları geliştirmek için Visual Studio Code için C# Dev Kit uzantısını yükleyin. Uzantı, sizin için zaten yüklü bir SDK kullanabilir veya bir SDK yükleyebilir.
.NET'i çalıştırdığınız yürütülebilir bir Windows Installer paketiyle yükleyin. Bu yöntem SDK ve Çalışma Zamanı'nı yükleyebilir. Yüklemeler sistem genelinde gerçekleştirilir.
.NET'i komut satırı aracılığıyla yönetmek istediğinizde .NET'i yüklemek için WinGet kullanın. Bu yöntem SDK ve Çalışma Zamanı'nı yükleyebilir. Yüklemeler sistem genelinde gerçekleştirilir.
Hatırlatmak gerekirse, bu tablo modern .NET için geçerlidir (.NET Framework'ün aksine). .NET Framework'ü yüklemek için .NET Framework Yükleme kılavuzuna bakın.
Windows 10 sürümleri hizmet sonu tarihleri sürüme göre segmentlere ayrılmıştır. Aşağıdaki tabloda yalnızca Home, Pro, Pro Education ve Pro for Workstations sürümleri dikkate alınır. Belirli ayrıntılar için Windows yaşam döngüsü bilgi sayfasına bakın.
İşletim Sistemi
.NET 9 (Mimariler)
.NET 8 (Mimariler)
Windows 11 (24H2, 23H2, 22H2 Ent/Edu)
✔️ x64, x86, Arm64
✔️ x64, x86, Arm64
Windows 10 (22H2+)
✔️ x64, x86, Arm64
✔️ x64, x86, Arm64
Windows Server 2025 Windows Server 2022 Windows Server 2019 Windows Server, Sürüm 1903 veya üzeri Windows Server 2016 Windows Server 2012 R2 Windows Server 2012
Microsoft Visual C++ 2015-2019 Yeniden Dağıtılabilir 64 bit / 32 bit
Windows Server 2012
Microsoft Visual C++ 2015-2019 Yeniden Dağıtılabilir 64 bit / 32 bit
Windows Server 2012 R2
Microsoft Visual C++ 2015-2019 Yeniden Dağıtılabilir 64 bit / 32 bit
Aşağıdaki dll'lerden biriyle ilgili bir hata alırsanız önceki gereksinimler de gereklidir:
api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-cor-timezone-l1-1-0.dll
hostfxr.dll
Arm tabanlı Windows bilgisayarları
.NET, Arm tabanlı Windows bilgisayarlarında desteklenir. Aşağıdaki bölümlerde.NET'i yüklerken dikkate almanız gerekenler açıklanmaktadır.
Yol farklılıkları
Arm tabanlı bir Windows bilgisayarda, .NET'in tüm Arm64 sürümleri normal C:\Program Files\dotnet\ klasörüne yüklenir. Ancak, .NET SDK'sının x64 sürümü C:\Program Files\dotnet\x64\ klasörüne yüklenir.
Yol değişkenleri
.NET SDK'sının hem x64 hem de Arm64 sürümleri yüklüyse, .NET'i sistem yoluna ekleyen ortam değişkenlerinin (değişken gibi PATH ) değiştirilmesi gerekebilir. Ayrıca, bazı araçlar ortam değişkenine dayanır ve bu değişkenin DOTNET_ROOT uygun .NET SDK yükleme klasörüne işaret edecek şekilde güncelleştirilmiş olması gerekir.
Visual Studio ile yükleme
Visual Studio, .NET'in diğer kopyalarından ayrı olarak kendi .NET kopyasını yükler. Visual Studio'nun farklı sürümleri farklı .NET sürümlerini destekler. Visual Studio'nun en son sürümü her zaman .NET'in en son sürümünü destekler.
Visual Studio Yükleyicisi Visual Studio'yu yükler ve yapılandırr. Bazı Visual Studio iş yükleri ASP.NET ve web geliştirme ve .NET Çok platformlu Uygulama kullanıcı arabirimi geliştirme gibi .NET'i içerir. .NET'in belirli sürümleri Tek Tek Bileşenler sekmesi aracılığıyla yüklenebilir.
Visual Studio belgelerinde aşağıdakiler hakkında yönergeler sağlanır:
.NET uygulamaları geliştirmek için Visual Studio kullanıyorsanız, aşağıdaki tabloda visual studio'nun hedef .NET SDK sürümüne göre gereken en düşük sürümü açıklanmaktadır.
.NET SDK sürümü
Visual Studio sürüm
9
Visual Studio 2022 sürüm 17.12 veya üzeri.
8
Visual Studio 2022 sürüm 17.8 veya üzeri.
7
Visual Studio 2022 sürüm 17.4 veya üzeri.
6
Visual Studio 2022 sürüm 17.0 veya üzeri.
5
Visual Studio 2019 sürüm 16.8 veya üzeri.
3.1
Visual Studio 2019 sürüm 16.4 veya üzeri.
3.0
Visual Studio 2019 sürüm 16.3 veya üzeri.
2.2
Visual Studio 2017 sürüm 15.9 veya üzeri.
2.1
Visual Studio 2017 sürüm 15.7 veya üzeri.
Visual Studio zaten yüklüyse, aşağıdaki adımlarla sürümünüzü de kontrol edebilirsiniz.
Visual Studio'yu açın.
Microsoft Visual Studio Hakkında Yardım'ı>seçin.
Hakkında iletişim kutusunda sürüm numarasını okuyun.
Visual Studio Code, masaüstünüzde çalışan güçlü ve basit bir kaynak kodu düzenleyicisidir. Visual Studio Code, sisteminizde zaten yüklü olan SDK'yi kullanabilir. Ayrıca, henüz yüklü değilse C# Dev Kit uzantısı sizin için .NET'i yükler.
Visual Studio Code aracılığıyla .NET yükleme yönergeleri için bkz . VS Code'da C# kullanmaya başlama.
.NET Yükleyicisi
.NET'in indirme sayfasında Windows Installer yürütülebilir dosyaları sağlanır.
Yükleyici, yeniden başlatma gerektiğini belirtmek için başarı için 0 çıkış kodunu ve 3010 çıkış kodunu döndürür. Diğer tüm değerler büyük olasılıkla bir hata kodudur.
Microsoft Update
.NET yükleyici yürütülebilir dosyaları, Windows'da Microsoft Update (MU) kullanılarak hizmet edilebilen bağımsız ürünlerdir. MU, .NET Framework gibi işletim sistemi bileşenlerine hizmet vermek için kullanılan Windows Update'e (WU) göre farklıdır.
.NET'in desteklenen sürümleri için hem güvenlik hem de güvenlikle ilgili olmayan düzeltmeler, birden çok dağıtım kanalı kullanılarak MU aracılığıyla sağlanır. Otomatik Güncelleştirmeler (AU) son kullanıcılar ve tüketicilerle ilgiliyken, Windows Server Update Services (WSUS) ve Windows Update Kataloğu BT yöneticileriyle ilgilidir.
.NET yükleyicisi yürütülebilir dosyaları, çalışma zamanı ve SDK gibi farklı mimariler ve bileşenler için ana ve ikincil sürümlerde yan yana (SxS) yüklemeleri destekler. Örneğin, hem 6.0.15 (x64) hem de 6.0.17 (x86) çalışma zamanını yükleyebilirsiniz. MU tetiklendiğinde, her iki yükleme için de en son yükleyiciyi sunar.
Güncelleştirmeleri engelle
Kullanıcıların çoğu güncel tutulmasını tercih etse de, aşağıdaki tabloda yer alan kayıt defteri anahtarlarını kullanarak .NET güncelleştirmelerini engellemek mümkündür.
.NET sürümü
Kayıt defteri anahtarı
Adı
Tür
Değer
Tümü
HKLM\SOFTWARE\Microsoft\.NET
BlockMU
REG_DWORD
0x00000001
.NET 9
HKLM\SOFTWARE\Microsoft\.NET\9.0
BlockMU
REG_DWORD
0x00000001
.NET 8
HKLM\SOFTWARE\Microsoft\.NET\8.0
BlockMU
REG_DWORD
0x00000001
.NET 7
HKLM\SOFTWARE\Microsoft\.NET\7.0
BlockMU
REG_DWORD
0x00000001
.NET 6
HKLM\SOFTWARE\Microsoft\.NET\6.0
BlockMU
REG_DWORD
0x00000001
.NET 5
HKLM\SOFTWARE\Microsoft\.NET\5.0
BlockMU
REG_DWORD
0x00000001
.NET Core 3.1
HKLM\SOFTWARE\Microsoft\.NET\3.1
BlockMU
REG_DWORD
0x00000001
.NET Core 2.1
HKLM\SOFTWARE\Microsoft\.NET\2.1
BlockMU
REG_DWORD
0x00000001
Sunucu işletim sistemi için otomatik güncelleştirmeler
Sunucu işletim sistemleri güncelleştirmeleri WSUS ve Microsoft Update Kataloğu tarafından desteklenir, ancak AU tarafından desteklenmez. Sunucu işletim sistemleri, aşağıdaki kayıt defteri anahtarlarını kullanarak AU aracılığıyla güncelleştirmeleri almayı kabul edebilir.
.NET sürümü
Kayıt defteri anahtarı
Adı
Tür
Değer
Tümü
HKLM\SOFTWARE\Microsoft\.NET
AllowAUOnServerOS
REG_DWORD
0x00000001
.NET 9
HKLM\SOFTWARE\Microsoft\.NET\9.0
AllowAUOnServerOS
REG_DWORD
0x00000001
.NET 8
HKLM\SOFTWARE\Microsoft\.NET\8.0
AllowAUOnServerOS
REG_DWORD
0x00000001
.NET 7
HKLM\SOFTWARE\Microsoft\.NET\7.0
AllowAUOnServerOS
REG_DWORD
0x00000001
.NET 6
HKLM\SOFTWARE\Microsoft\.NET\6.0
AllowAUOnServerOS
REG_DWORD
0x00000001
.NET 5
HKLM\SOFTWARE\Microsoft\.NET\5.0
AllowAUOnServerOS
REG_DWORD
0x00000001
.NET Core 3.1
HKLM\SOFTWARE\Microsoft\.NET\3.1
AllowAUOnServerOS
REG_DWORD
0x00000001
Önceki sürümlerin ne zaman kaldırıldığını seçme
Yükleyici yürütülebilir dosyaları, önceki yüklemeyi kaldırmadan önce her zaman yeni içerik yükler. Eski çalışma zamanları kaldırıldığında çalışan uygulamalar kesintiye uğrayabilir veya kilitlenebilir. .NET'i güncelleştirmenin etkisini en aza indirmek için, bir kayıt defteri anahtarı kullanılarak önceki bir .NET yüklemesinin ne zaman kaldırılması gerektiğini belirtebilirsiniz.
.NET sürümü
Kayıt defteri anahtarı
Adı
Tür
Değer
Tümü
HKLM\SOFTWARE\Microsoft\.NET
RemovePreviousVersion
REG_SZ
always, never veya nextSession
.NET 9
HKLM\SOFTWARE\Microsoft\.NET\9.0
RemovePreviousVersion
REG_SZ
always, never veya nextSession
.NET 8
HKLM\SOFTWARE\Microsoft\.NET\8.0
RemovePreviousVersion
REG_SZ
always, never veya nextSession
never önceki yüklemeleri korur ve önceki .NET yüklemelerini kaldırmak için el ile müdahale gerektirir.
always yeni sürüm yüklendikten sonra önceki yüklemeleri kaldırır. Bu, .NET'teki varsayılan davranıştır.
nextSession , Yöneticiler grubundaki üyelerin bir sonraki oturum açma oturumuna kadar kaldırmayı engeller.
Değerler büyük/küçük harfe duyarlı değildir ve varsayılan olarak geçersiz değerlerdir always.
Kaldırma işlemi ertelendiğinde, yükleyici önceki sürümü kaldırmak için RunOnce kayıt defteri anahtarına bir komut yazar. Komut yalnızca Yöneticiler grubundaki bir kullanıcı makinede oturum açtığında yürütülür.
Not
Bu özellik yalnızca .NET 8 (8.0.11), 9 ve sonraki .NET sürümlerinde kullanılabilir. Yalnızca tek başına yükleyici yürütülebilir dosyaları için geçerlidir ve bunları kullanan WinGet gibi dağıtımları etkiler.
Windows Paket Yöneticisi (WinGet) ile yükleme
Aracı kullanarak winget.exe .NET'i Windows Paket Yöneticisi hizmeti aracılığıyla yükleyebilir ve yönetebilirsiniz. WinGet'i yükleme ve kullanma hakkında daha fazla bilgi için bkz. Uygulamaları yüklemek ve yönetmek için winget aracını kullanma.
.NET sistem genelinde yüklüyorsanız, yönetim ayrıcalıklarıyla yükleyin.
Yüklemek istediğiniz paketin winget search farklı sürümlerini aramak için komutunu kullanın. Örneğin, aşağıdaki komut WinGet aracılığıyla kullanılabilen tüm .NET SDK'larını arar:
winget search Microsoft.DotNet.SDK
Arama sonuçları, her paket tanımlayıcısı olan bir tabloya yazdırılır.
Name Id Version Source
----------------------------------------------------------------------------------------------
Microsoft .NET SDK 9.0 Microsoft.DotNet.SDK.9 9.0.100 winget
Microsoft .NET SDK 8.0 Microsoft.DotNet.SDK.8 8.0.300 winget
Microsoft .NET SDK 7.0 Microsoft.DotNet.SDK.7 7.0.409 winget
Microsoft .NET SDK 6.0 Microsoft.DotNet.SDK.6 6.0.422 winget
Microsoft .NET SDK 5.0 Microsoft.DotNet.SDK.5 5.0.408 winget
Microsoft .NET SDK 3.1 Microsoft.DotNet.SDK.3_1 3.1.426 winget
Önizleme sürümlerini yükleme
Bir önizleme sürümü varsa, kimlikteki sürüm numarasını sözcüğüyle Previewkullanın. Aşağıdaki örnek ,NET Desktop Runtime'ın önizleme sürümünü yükler:
Sürekli tümleştirme ve yönetici olmayan yüklemeler için .NET'in PowerShell betiği aracılığıyla dotnet-install yüklenmesi önerilir. Sisteminizde normal kullanım için .NET yüklüyorsanız.NET Yükleyicisi'ni veya Windows Paket Yöneticisi yükleme yöntemlerini kullanın.
Betik varsayılan olarak .NET 8 olan en son uzun vadeli destek (LTS) sürümünü yükler. Anahtarı belirterek -Channel belirli bir sürümü seçebilirsiniz. -Runtime Çalışma zamanı yüklemek için anahtarını ekleyin. Aksi takdirde betik SDK'yı yükler. Betik adresinde bulunur https://dot.net/v1/dotnet-install.ps1 ve kaynak kodu GitHub'da barındırılır.
Yükleyiciyi veya ikili sürümü indirdikten sonra dosyanın değiştirilmediğinden veya bozulmadığından emin olmak için dosyayı doğrulayın. Bilgisayarınızda sağlama toplamını doğrulayabilir ve ardından indirme web sitesinde bildirilenlerle karşılaştırabilirsiniz.
Dosyayı resmi bir indirme sayfasından indirdiğinizde, dosyanın sağlama toplamı bir metin kutusunda görüntülenir. Sağlama toplamı değerini panonuza kopyalamak için Kopyala düğmesini seçin.
İndirdiğiniz dosyanın sağlama toplamını doğrulamak için PowerShell veya Komut İstemi'ni kullanabilirsiniz. Örneğin, aşağıdaki komut dotnet-sdk-8.0.100-win-x64.exe dosyasının sağlama toplamını bildirir:
False'un yazdırıldığını görürseniz, indirdiğiniz dosya geçerli değildir ve kullanılmamalıdır.
Sorun giderme
.NET SDK'sını yükledikten sonra .NET CLI komutlarını çalıştırmaya çalışırken sorunlarla karşılaşabilirsiniz. Bu bölümde bu yaygın sorunlar toplanır ve çözümler sağlanır.
Büyük olasılıkla .NET SDK'sının hem x86 (32 bit) hem de x64 (64 bit) sürümlerini yüklemişsinizdir. Komutu çalıştırdığınızda x64 sürümüne dotnet çözümlenmesi gerektiğinde x86 sürümüne çözümlendiğinden bu bir çakışmaya neden oluyor. Bu sorun, değişkeni önce x64 sürümünü çözecek şekilde ayarlayarak %PATH% düzeltilir.
komutunu çalıştırarak where.exe dotnet her iki sürümün de yüklü olduğunu doğrulayın. Bunu yaparsanız, hem Program Files\ hem de Program Files (x86)\ klasörleri için bir girdi görmeniz gerekir. Aşağıdaki örnekte gösterildiği gibi Program Files (x86)\ klasörü ilk sıradaysa, bu yanlıştır ve sonraki adıma geçmeniz gerekir.
Windows düğmesine basın ve aramaya "Sistem ortamı değişkenlerini düzenle" yazın. Sistem ortamı değişkenlerini düzenle'yi seçin.
Sistem Özellikleri penceresi Gelişmiş Sekmesi'ne açılır. Ortam Değişkenleri'ne tıklayın.
Ortam Değişkenleri penceresinin Sistem değişkenleri grubunun altında Yol* satırını ve ardından Düzenle düğmesini seçin.
C:\Program Files\dotnet\ girdisini C:\Program Files (x86)\dotnet\ üzerine taşımak için Yukarı Taşı ve Aşağı Taşı düğmelerini kullanın.
Uygulama oluşturma işlemi beklenenden daha yavaş
Bir Windows özelliği olan Akıllı Uygulama Denetimi'nin kapalı olduğundan emin olun. Akıllı Uygulama Denetimi'nin geliştirme için kullanılan makinelerde etkinleştirilmesi önerilmez. "Kapalı" dışındaki tüm ayarlar SDK performansını olumsuz etkileyebilir.
Bu içeriğin kaynağı GitHub'da bulunabilir; burada ayrıca sorunları ve çekme isteklerini oluşturup gözden geçirebilirsiniz. Daha fazla bilgi için katkıda bulunan kılavuzumuzu inceleyin.
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin:
.NET, pek çok farklı türde uygulama oluşturmaya yönelik ücretsiz, platformlar arası, açık kaynak bir geliştirici platformudur. .NET ile birden çok dil, düzenleyici ve kitaplık kullanarak web, mobil, masaüstü, oyun ve IoT için uygulama oluşturabilirsiniz.