Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Note
dotnetup genel önizleme aşamasındadır. Özellikleri ve davranışı genel kullanılabilirlik öncesinde değişebilir.
Dotnetup, .NET SDK'ları ve yüklemiş olduğu Çalışma Zamanlarını kullanılabilir hale getirmek için ortamı yapılandırabilir. Bunu yapmak için aşağıdaki ortam değişkenlerini ayarlar:
-
PATH:dotnetkomutunu komut satırında kullanılabilir hale getirir. Visual Studio veya C# Geliştirme Seti gibi geliştirme araçları da .NET SDK'ları ve Çalışma Zamanlarını bulmak içinPATHöğesini kullanır. -
DOTNET_ROOT: Çerçeveye bağımlı uygulama yürütülebilir dosyalarına bir .NET yüklemesini ve paylaşılan çalışma zamanlarını nerede bulacaklarını belirtir.
Dotnetup, bu ortam değişkenlerinin nerede ayarlandığını denetleyen farklı erişim modlarını destekler. İlk dotnetup kurulumunda veya daha sonra dotnetup env komutuyla bir erişim modu seçebilirsiniz.
| Erişim Modu | Behavior |
|---|---|
none |
Bu ortam değişkenlerini değiştirmez. .NET'i dotnetup dotnet ile çalıştırın. |
shell |
Bu ortam değişkenlerini ayarlamak için kabuk profilini değiştirir. Bu kabuktan başlatılan işlemler, dotnetup tarafından yüklenen .NET SDK'ları ve Çalışma Zamanlarını kullanır. |
everywhere |
Sistemi PATH değiştirir ve kullanıcı düzeyi DOTNET_ROOT ortam değişkenini ayarlar. Yalnızca Windows'ta kullanılabilir. |
Varsayılan olarak, dotnetup erişim modu ayarından bağımsız olarak kendisini de PATH konumuna ekler. Bu, dotnetup env set --dotnetup-on-path <true|false> ile denetlenebilir.
Everywhere modu ile ilgili hususlar
Dotnetup tarafından yüklenen SDK'ların ve çalışma zamanlarının geliştirme araçlarından ve kabuk olarak kullanılan cmd terminallerden kullanılabilmesi için Windows'ta Everywhere modu varsayılan olarak etkindir. Ancak, öncelikle .NET SDK ve Çalışma Zamanı'nın makine genelindeki yüklemeleriyle nasıl etkileşime geçtiğinin farkında olmanız gereken bazı şeyler vardır.
Makine genelindeki .NET yüklemeleri Program Files klasörünün altında bulunur. Bunlar, .NET indirmeler sayfasından indirilebilen yükleyicilerle yüklenebilir. Visual Studio, .NET SDK ve Çalışma Zamanı'nın makine genelindeki yüklemelerini yükler ve çerçeveye bağımlı uygulamalar için yükleyiciler de bağımlı oldukları .NET Çalışma Zamanı'nı makine genelindeki konuma yükleyebilir.
everywhere modunda, kullanıcı yerel dotnetup tarafından yönetilen .NET yükleme kökü, makine genelindeki .NET yükleme kökünü geçersiz kılar. Bu, Program Dosyalarında yüklü .NET SDK'ların ve Runtime'ların kullanılamayacağı anlamına gelir. Eşleşen bir SDK yüklü değilse, bu SDK'lara bağımlı projeler derlenemez. Eşleşen bir çalışma zamanı yüklü değilse, çerçeveye bağımlı uygulamalar başlatılamaz ve "Bu uygulamayı çalıştırmak için .NET yüklemeniz veya güncelleştirmeniz gerekir" hatası görüntülenir.
Bu hataları önlemek için ilk dotnetup kurulumu, mevcut sistem .NET SDK ve Çalışma Zamanı kurulumlarını taşıma seçeneği sunar. Ayrıca bunları, SDK'lar için dotnetup runtime install --migrate-from-system veya çalışma zamanları için dotnetup sdk install --migrate-from-system çalıştırarak açıkça taşıyabilirsiniz.
Her yerde modunu açmak veya kapatmak için sistem PATH'sinin değiştirilmesi gerekir. Bu da yönetici ayrıcalıkları gerektirir (yani bir UAC istemi onayı veya "Yönetici olarak çalıştır"). Bunun nedeni, .NET için makine genelindeki yükleyicilerin Program Files .NET yükleme kökünü sistem PATH'sine eklemesi ve komutları çözerken sistem PATH'sinin kullanıcı düzeyi PATH'den öncelikli olmasıdır. Bu nedenle dotnetup'ın sistem PATH'ini değiştirerek dotnetup .NET yükleme kökünü öncelikli hale getirmesi gerekir.
Sistem PATH tüm kullanıcılar için geçerli olduğundan, bu değişiklikler diğer kullanıcıları etkileyebilir. Sistem PATH'sine eklenen yol varsayılan olarak kullanıcının yerel AppData klasörünün altındadır. Bu normalde diğer kullanıcılar tarafından erişilebilir olmaz, bu nedenle dotnet öğesinin hangi sürümünün çözümleneceğini etkilemez. Ancak, yükseltilmiş işlemler (yönetici olarak çalışan) yolu okuyabilir ve beklenmedik şekilde başka bir kullanıcının .NET SDK'larını veya Çalışma Zamanlarını çözümleyebilir.
Desteklenen kabuklar
Profil ve betik oluşturma desteği:
- Bash (Bir komut dilidir)
- Z shell
- Balık
- Pwsh (PowerShell Core)
- PowerShell
Eğer --shell vermezseniz, dotnetup mevcut kabuğu algılar. Algılama kullanılamadığında veya farklı bir profili güncelleştirmek istediğinizde açık bir kabuk kullanın:
dotnetup env set shell --shell zsh
Depolanmış ve gözlemlenen durum
dotnetup.config.json seçili erişim modunu ve PATH öğesinin dotnetup üzerinde olup olmaması gerektiğini depolar.
dotnetup env show bu yapılandırmayı geçerli profil ve ortamla karşılaştırır. Gözlemlenen durum eşleşmiyorsa sapma olduğunu bildirir.
Kaymayı düzeltmek için depolanan yapılandırmayı yeniden uygulayın:
dotnetup env set
Mevcut terminal
Profil ve Windows ortam değişiklikleri geçerli işlemin ortamını yeniden yazmaz. Yeni bir terminal açın, değiştirilmiş profili kaynak olarak yükleyin veya oluşturulan betiği değerlendirin.
Bash veya Z kabuğu için:
eval "$(dotnetup env script)"
PowerShell için:
dotnetup env script --shell pwsh | Invoke-Expression
env script, seçim seçeneklerini belirtmediğinizde depolanan yapılandırmayı izler. Oluşturulan içeriği seçmek için --dotnetup, --dotnet veya her ikisini de kullanın.
Ortam yapılandırmasını kaldır
Tüm yönetilen ortam kablolarını kaldırın:
dotnetup env clear
Bu komut şuna eşdeğerdir:
dotnetup env set none --dotnetup-on-path false
SDK'ları veya çalışma zamanlarını kaldırmaz.