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.
Not
Yükleme betiğinin davranışı değişti. Yeni ağ konumlarından .NET'i indirir. Daha fazla bilgi için bkz. Kritik: .NET Yükleme bağlantılarıdeğişiyor.
Veri Akışı Adı
dotnet-install.ps1
|
dotnet-install.sh - .NET SDK'sını ve paylaşılan çalışma zamanını yüklemek için kullanılan betik.
Özet
Windows:
dotnet-install.ps1 [-Architecture <ARCHITECTURE>] [-AzureFeed]
[-Channel <CHANNEL>] [-DryRun] [-FeedCredential]
[-InstallDir <DIRECTORY>] [-JSonFile <JSONFILE>]
[-NoPath] [-ProxyAddress] [-ProxyBypassList <LIST_OF_URLS>]
[-ProxyUseDefaultCredentials] [-Quality <QUALITY>] [-Runtime <RUNTIME>]
[-SkipNonVersionedFiles] [-UncachedFeed] [-KeepZip] [-ZipPath <PATH>] [-Verbose]
[-Version <VERSION>]
Get-Help ./dotnet-install.ps1
Linux/macOS:
dotnet-install.sh [--architecture <ARCHITECTURE>] [--azure-feed]
[--channel <CHANNEL>] [--dry-run] [--feed-credential]
[--install-dir <DIRECTORY>] [--jsonfile <JSONFILE>]
[--no-path] [--quality <QUALITY>]
[--runtime <RUNTIME>] [--runtime-id <RID>]
[--skip-non-versioned-files] [--uncached-feed] [--keep-zip] [--zip-path <PATH>] [--verbose]
[--version <VERSION>]
dotnet-install.sh --help
Bash betiği powershell anahtarlarını da okur, böylece PowerShell anahtarlarını Linux/macOS sistemlerinde betikle kullanabilirsiniz.
Açıklama
Betikler dotnet-install , .NET CLI ve paylaşılan çalışma zamanını içeren .NET SDK'sının yönetici olmayan bir yüklemesini gerçekleştirir. İki betik vardır:
- Windows üzerinde çalışan bir PowerShell betiği. Yükleme yönergeleri için bkz . Windows'da yükleme.
- Linux/macOS üzerinde çalışan bir bash betiği. Yükleme yönergeleri için bkz . Linux'ta yükleme ve macOS'ta yükleme.
Not
.NET telemetri verilerini toplar. Daha fazla bilgi edinmek ve geri çevirmeyi öğrenmek için bkz . .NET SDK telemetrisi.
Amaç
Betiklerin amaçlanan kullanımı Sürekli Tümleştirme (CI) senaryoları içindir; burada:
SDK'nın kullanıcı etkileşimi olmadan ve yönetici hakları olmadan yüklenmesi gerekir.
SDK yüklemesinin birden çok CI çalıştırması arasında kalıcı olması gerekmez.
Tipik olay dizisi:
- CI tetikleniyor.
- CI, SDK'yi bu betiklerden birini kullanarak yükler.
- CI, çalışmasını tamamlar ve SDK yüklemesi de dahil olmak üzere geçici verileri temizler.
Bir geliştirme ortamı ayarlamak veya uygulamaları çalıştırmak için bu betikler yerine yükleyicileri kullanın.
Önerilen sürüm
Betiklerin kararlı sürümünü kullanmanızı öneririz:
- Bash (Linux/macOS): https://dot.net/v1/dotnet-install.sh
- PowerShell (Windows): https://dot.net/v1/dotnet-install.ps1
Betiklerin kaynağı dotnet/install-scripts GitHub deposundadır.
Betik davranışı
Her iki betik de aynı davranışa sahiptir. CLI derlemesinden ZIP/tarball dosyasını indirir ve varsayılan konuma veya tarafından -InstallDir|--install-dirbelirtilen bir konuma yüklemeye devam eder.
Varsayılan olarak, yükleme betikleri SDK'yı indirir ve yükler. Yalnızca paylaşılan çalışma zamanını almak istiyorsanız bağımsız değişkenini -Runtime|--runtime belirtin.
Varsayılan olarak, betik yükleme konumunu geçerli oturum için $PATH ekler. Bağımsız değişkenini -NoPath|--no-path belirterek bu varsayılan davranışı geçersiz kılın. Betik ortam değişkenini DOTNET_ROOT ayarlamaz.
Önemli
Betik yükleme konumunu kullanıcının PATH ortam değişkenine eklemez, el ile eklemeniz gerekir.
Betiği çalıştırmadan önce işletim sisteminizin desteklendiğinden emin olun. Daha fazla bilgi için bkz . Windows, Linux ve macOS'a .NET yükleme.
Bağımsız değişkenini -Version|--version kullanarak belirli bir sürümü yükleyebilirsiniz. Sürüm, gibi 2.1.0üç parçalı bir sürüm numarası olarak belirtilmelidir. Sürüm belirtilmezse, betik sürümü yükler latest .
Yükleme betikleri Windows'da kayıt defterini güncelleştirmez. Yalnızca sıkıştırılmış ikili dosyaları indirir ve bir klasöre kopyalarlar. Kayıt defteri anahtarı değerlerinin güncelleştirilmesini istiyorsanız .NET yükleyicilerini kullanın.
Seçenekler
-Architecture|--architecture <ARCHITECTURE>Yüklenecek .NET ikili dosyalarının mimarisi. Olası değerler , , , , , , ,
<auto>,amd64x64vex86değerleridirarm64.arms390xppc64leriscv64Varsayılan değer şu anda çalışan işletim sistemi mimarisini temsil eden değeridir<auto>.-AzureFeed|--azure-feedYalnızca şirket içi kullanım içindir. SDK arşivlerini indirmek için farklı bir depolama alanı kullanılmasına izin verir. Varsayılan değer:
https://builds.dotnet.microsoft.com/dotnet.-Channel|--channel <CHANNEL>Yükleme için kaynak kanalı belirtir. Olası değerler:
-
STS: En son Standart Terim Desteği sürümü. -
LTS: En son Uzun Vadeli Destek sürümü. - A.B biçiminde, belirli bir sürümü temsil eden iki parçalı sürüm (örneğin,
3.1veya8.0). - A.B.Cxx biçiminde, belirli bir SDK sürümünü temsil eden üç parçalı sürüm (örneğin, 8.0.1xx veya 8.0.2xx). 5.0 sürümünden itibaren kullanılabilir.
versionparametresi, dışındachannelbir sürüm kullanıldığında parametresini geçersiz kılarlatest.Varsayılan değer şudur:
LTS. .NET destek kanalları hakkında daha fazla bilgi için .NET Destek İlkesi sayfasına bakın.-
-DryRun|--dry-runAyarlanırsa, betik yüklemeyi gerçekleştirmez. Bunun yerine, .NET CLI'nın şu anda istenen sürümünü tutarlı bir şekilde yüklemek için kullanılacak komut satırını görüntüler. Örneğin, sürümünü
latestbelirtirseniz, bu komutun bir derleme betiğinde belirlenimi olarak kullanılabilmesi için belirli sürüme sahip bir bağlantı görüntüler. Ayrıca, kendiniz yüklemeyi veya indirmeyi tercih ederseniz ikilinin konumunu da görüntüler.-FeedCredential|--feed-credentialAzure akışına eklemek için sorgu dizesi olarak kullanılır. URL'nin genel olmayan blob depolama hesaplarını kullanacak şekilde değiştirilmesine olanak tanır.
--helpBetik için yardım yazdırır. Yalnızca bash betiği için geçerlidir. PowerShell için kullanın
Get-Help ./dotnet-install.ps1.-InstallDir|--install-dir <DIRECTORY>Yükleme yolunu belirtir. Dizin yoksa oluşturulur. Varsayılan değer Windows'da %LocalAppData%\Microsoft\dotnet ve Linux/macOS üzerinde $HOME/.dotnet'tir. İkili dosyalar doğrudan bu dizine yerleştirilir.
-JSonFile|--jsonfile <JSONFILE>SDK sürümünü belirlemek için kullanılacak bir global.json dosyasının yolunu belirtir. global.json dosyasının için
sdk:versionbir değeri olmalıdır.-NoPath|--no-pathAyarlanırsa, yükleme klasörü geçerli oturumun yoluna dışarı aktarılamaz. Varsayılan olarak, betik PATH'i değiştirir ve bu da yüklemeden hemen sonra .NET CLI'yi kullanılabilir hale getirir.
-ProxyAddressAyarlanırsa, yükleyici web istekleri yaparken ara sunucuyu kullanır. (Yalnızca Windows için geçerlidir.)
-ProxyBypassList <LIST_OF_URLS>ile
ProxyAddressayarlanırsa, ara sunucuyu atlayacak virgülle ayrılmış URL'lerin listesini sağlar. (Yalnızca Windows için geçerlidir.)-ProxyUseDefaultCredentialsAyarlanırsa, yükleyici ara sunucu adresi kullanırken geçerli kullanıcının kimlik bilgilerini kullanır. (Yalnızca Windows için geçerlidir.)
-Quality|--quality <QUALITY>Kanalda belirtilen kalitenin en son derlemesini indirir. Olası değerler şunlardır:
daily,previewveGA.Farklı kalite değerleri, SDK veya Çalışma Zamanı'nın yüklü yayın sürecinin farklı aşamalarını gösterir.
-
daily: SDK veya Çalışma Zamanı'nın en son derlemeleri. Bunlar her gün derlenir ve test yapılmaz. Bunlar üretim kullanımı için önerilmez, ancak genellikle ürünle birleştirildikten hemen sonra belirli özellikleri veya düzeltmeleri test etmek için kullanılabilir. Bu derlemeler depodandotnet/installeralınır ve bu nedenle düzeltmeleri arıyorsanız günlük derlemede görünmeden önce kodundotnet/sdkakışını beklemeniz ve SDK'dan Yükleyici'ye birleştirilmenizi beklemeniz gerekir. -
preview: .NET'in genel kullanıma yönelik sonraki sürümünün aylık genel sürümleri. Üretim kullanımı için önerilmez. Kullanıcıların sürümden önce yeni ana sürümü denemelerine ve test etmelerine olanak sağlamak için tasarlanmıştır. -
GA: .NET SDK ve Çalışma Zamanı'nın son kararlı sürümleri. Hem genel kullanıma hem de üretim desteğine yöneliktir.
Bu
--qualityseçenek yalnızca ile--channelbirlikte çalışır, ancak veSTSkanalları içinLTSgeçerli değildir ve bu kanallardan biri kullanılırsa yoksayılır.SDK yüklemesi için veya biçiminde bir
channeldeğerA.BA.B.Cxxkullanın. Çalışma zamanı yüklemesi için biçiminde kullanınchannelA.B.Hem hem de
versionqualityparametrelerini kullanmayın. Belirtildiğindequality, betik uygun sürümü kendi başına belirler.5.0 sürümünden itibaren kullanılabilir.
-
-Runtime|--runtime <RUNTIME>SDK'nın tamamını değil yalnızca paylaşılan çalışma zamanını yükler. Olası değerler:
-
dotnet: PaylaşılanMicrosoft.NETCore.Appçalışma zamanı. -
aspnetcore: PaylaşılanMicrosoft.AspNetCore.Appçalışma zamanı. -
windowsdesktopPaylaşılanMicrosoft.WindowsDesktop.Appçalışma zamanı.
-
--os <OPERATING_SYSTEM>Araçların yüklendiği işletim sistemini belirtir. Olası değerler şunlardır:
osx,macos,linux,linux-musl,freebsd.parametresi isteğe bağlıdır ve yalnızca betik tarafından algılanan işletim sistemini geçersiz kılmak için gerekli olduğunda kullanılmalıdır.
-SharedRuntime|--shared-runtimeNot
Bu parametre kullanımdan kaldırıldı ve betiğin gelecekteki bir sürümünde kaldırılabilir. Önerilen alternatif seçenektir
-Runtime|--runtime.SDK'nın tamamını değil yalnızca paylaşılan çalışma zamanı bitlerini yükler. Bu seçenek belirtilmesiyle
-Runtime|--runtime dotneteşdeğerdir.-SkipNonVersionedFiles|--skip-non-versioned-filesZaten varsa, dotnet.exe gibi sürümlenmemiş dosyaları yüklemeyi atlar.
-UncachedFeed|--uncached-feedYalnızca şirket içi kullanım içindir. SDK arşivlerini indirmek için farklı bir depolama alanı kullanılmasına izin verir. Bu parametre
-AzureFeed|--azure-feedüzerine yazar.-KeepZip|--keep-zipAyarlanırsa, indirilen SDK arşivi yüklemeden sonra tutulur.
-ZipPath|--zip-path <PATH>Ayarlanırsa, indirilen SDK arşivi belirtilen yolda depolanır.
-Verbose|--verboseTanılama bilgilerini görüntüler.
-Version|--version <VERSION>Belirli bir derleme sürümünü temsil eder. Olası değerler:
-
latest: Kanalda en son derleme (seçeneğiyle-Channelbirlikte kullanılır). - X.Y.Z biçiminde belirli bir derleme sürümünü temsil eden üç parçalı sürüm; seçeneğinin
-Channelyerini alır. Örneğin:2.0.0-preview2-006120.
Belirtilmezse,
-Versionvarsayılan olarak olurlatest.-
Örnekler
En son uzun süreli desteklenen (LTS) sürümü varsayılan konuma yükleyin:
Windows:
./dotnet-install.ps1 -Channel LTSmacOS/Linux:
./dotnet-install.sh --channel LTS6.0.1xx SDK'nın en son önizleme sürümünü belirtilen konuma yükleyin:
Windows:
./dotnet-install.ps1 -Channel 6.0.1xx -Quality preview -InstallDir C:\climacOS/Linux:
./dotnet-install.sh --channel 6.0.1xx --quality preview --install-dir ~/cliPaylaşılan çalışma zamanının 6.0.0 sürümünü yükleyin:
Windows:
./dotnet-install.ps1 -Runtime dotnet -Version 6.0.0macOS/Linux:
./dotnet-install.sh --runtime dotnet --version 6.0.0Betiği alın ve 6.0.2 sürümünü bir şirket ara sunucusunun arkasına yükleyin (yalnızca Windows):
Invoke-WebRequest 'https://dot.net/v1/dotnet-install.ps1' -Proxy $env:HTTP_PROXY -ProxyUseDefaultCredentials -OutFile 'dotnet-install.ps1'; ./dotnet-install.ps1 -InstallDir '~/.dotnet' -Version '6.0.2' -Runtime 'dotnet' -ProxyAddress $env:HTTP_PROXY -ProxyUseDefaultCredentials;Betik alın ve .NET CLI tek satırlı örnekleri yükleyin:
Windows:
# Run a separate PowerShell process because the script calls exit, so it will end the current PowerShell session. &powershell -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -UseBasicParsing 'https://dot.net/v1/dotnet-install.ps1'))) <additional install-script args>"macOS/Linux:
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin <additional install-script args>Önceki yüklemelerden ikili dosyaların üzerine yazmazken
dotnetbirden çok sürüm yükleyin..NET SDK'larını veya .NET çalışma zamanını daha yeni bir sürümün üzerine önceki bir sürümden yüklerseniz, önceki sürümdeki 'çevrilmemiş'
dotnetdosyaların daha yeni sürümdeki dosyaların üzerine yazmaması için kullanmanız--skip-non-versioned-filesgerekir.:~ $ ./dotnet-install.sh --channel 9.0 --install-dir local-dotnet # installs the latest 9 SDK to the specified directory dotnet-install: Attempting to download using aka.ms link https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.303/dotnet-sdk-9.0.303-linux-x64.tar.gz dotnet-install: Remote file https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.303/dotnet-sdk-9.0.303-linux-x64.tar.gz size is 218004272 bytes. dotnet-install: Extracting archive from https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.303/dotnet-sdk-9.0.303-linux-x64.tar.gz dotnet-install: Downloaded file size is 218004272 bytes. dotnet-install: The remote and local file sizes are equal. dotnet-install: Installed version is 9.0.303 dotnet-install: Adding to current process PATH: `$HOME/local-dotnet`. Note: This change will be visible only when sourcing script. dotnet-install: Note that the script does not resolve dependencies during installation. dotnet-install: To check the list of dependencies, go to https://learn.microsoft.com/dotnet/core/install, select your operating system and check the "Dependencies" section. dotnet-install: Installation finished successfully. :~ $ ./local-dotnet/dotnet --list-runtimes # see what runtimes we have available Microsoft.AspNetCore.App 9.0.7 [$HOME/local-dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 9.0.7 [$HOME/local-dotnet/shared/Microsoft.NETCore.App] :~ $ ./local-dotnet/dotnet --list-sdks # see what SDKs we have available 9.0.303 [$HOME/local-dotnet/sdk] :~ $ ./dotnet-install.sh --channel 8.0 --install-dir local-dotnet --skip-non-versioned-files # install the 8 SDK to the same place, but keep the 9 dotnet binaries dotnet-install: Attempting to download using aka.ms link https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.412/dotnet-sdk-8.0.412-linux-x64.tar.gz dotnet-install: Remote file https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.412/dotnet-sdk-8.0.412-linux-x64.tar.gz size is 216096947 bytes. dotnet-install: Extracting archive from https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.412/dotnet-sdk-8.0.412-linux-x64.tar.gz dotnet-install: Downloaded file size is 216096947 bytes. dotnet-install: The remote and local file sizes are equal. dotnet-install: Installed version is 8.0.412 dotnet-install: Adding to current process PATH: `$HOME/local-dotnet`. Note: This change will be visible only when sourcing script. dotnet-install: Note that the script does not resolve dependencies during installation. dotnet-install: To check the list of dependencies, go to https://learn.microsoft.com/dotnet/core/install, select your operating system and check the "Dependencies" section. dotnet-install: Installation finished successfully. :~ $ ./local-dotnet/dotnet --list-runtimes # we should have 8 and 9 Runtimes now Microsoft.AspNetCore.App 8.0.18 [$HOME/local-dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 9.0.7 [$HOME/local-dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 8.0.18 [$HOME/local-dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 9.0.7 [$HOME/local-dotnet/shared/Microsoft.NETCore.App] :~ $ ./local-dotnet/dotnet --list-sdks # we should have 2 SDKs now 8.0.412 [$HOME/local-dotnet/sdk] 9.0.303 [$HOME/local-dotnet/sdk]
Ortam değişkenlerini belirleme
.NET'in el ile yüklenmesi sistem genelinde ortam değişkenlerini eklemez ve genellikle yalnızca .NET'in yüklendiği oturumda çalışır. İşletim sisteminiz için ayarlamanız gereken iki ortam değişkeni vardır:
DOTNET_ROOTBu değişken, Linux ve macOS
$HOME/.dotnetiçin ve Windows için PowerShell'de .$HOME\.dotnetNET'in yüklendiği klasöre ayarlanır.PATHBu değişken hem klasörü hem de
DOTNET_ROOTkullanıcının .dotnet/tools klasörünü içermelidir. Bu genellikle$HOME/.dotnet/toolsLinux ve macOS'ta ve$HOME\.dotnet\toolsWindows'da PowerShell'dedir.
İpucu
Linux ve macOS için komutunu kullanarak echo kabuk profilinizde .bashrc gibi değişkenleri ayarlayın:
echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools' >> ~/.bashrc
uygulamasını kaldırma
Kaldırma betiği yok. .NET'i el ile kaldırma hakkında bilgi için bkz . .NET Çalışma Zamanı ve SDK'sını kaldırma.
dotnet-install.sh imza doğrulaması
İmza doğrulama, bir betiğin orijinalliğini ve bütünlüğünü sağlamaya yardımcı olan önemli bir güvenlik önlemidir. Bir betiğin imzasını doğrulayarak, üzerinde oynanmadığından ve güvenilir bir kaynaktan geldiğinden emin olabilirsiniz.
GPG kullanarak betiğin orijinalliğini dotnet-install.sh doğrulamaya yönelik adım adım kılavuz aşağıdadır:
- GPG'yi yükleme: GPG (GNU Privacy Guard), verileri şifrelemek ve imzalamak için ücretsiz ve açık kaynak bir araçtır. GPG web sitesindeki yönergeleri izleyerek yükleyebilirsiniz.
-
Ortak anahtarımızı içeri aktarın: install-scripts ortak anahtar dosyasını indirin ve komutunu
gpg --import dotnet-install.ascçalıştırarak bunu GPG anahtarlığınıza aktarın. -
İmza dosyasını indirin: Bash betiğimizin imza dosyasını adresinde
https://dot.net/v1/dotnet-install.sigbulabilirsiniz. veyawgetgibicurlbir araç kullanarak indirebilirsiniz. -
İmzayı doğrulama: Bash betiğimizin imzasını doğrulamak için komutunu
gpg --verify dotnet-install.sig dotnet-install.shçalıştırın. Bu işlem, dosyanın imzasınıdotnet-install.shdosyadaki imzayla karşılaştırarakdotnet-install.sigdenetler. -
Sonucu denetleyin: İmza geçerliyse içeren bir ileti
Good signature from "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>"görürsünüz. Bu, betiğin üzerinde oynanmadığı ve güvenilebileceği anlamına gelir.
Ortam hazırlanıyor
GPG'yi yüklemek ve ortak anahtarımızı içeri aktarmak tek seferlik bir işlemdir.
sudo apt install gpg
wget https://dot.net/v1/dotnet-install.asc
gpg --import dotnet-install.asc
Başarılı olduğunda aşağıdaki gibi bir çıkış görmeniz gerekir:
gpg: directory '/home/<user>/.gnupg' created
gpg: keybox '/home/<user>/.gnupg/pubring.kbx' created
gpg: /home/<user>/.gnupg/trustdb.gpg: trustdb created
gpg: key B9CF1A51FC7D3ACF: public key "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
İndirme ve doğrulama
Anahtar içeri aktarıldığında artık betiği ve imzayı indirebilir, ardından betiğin imzayla eşleştiğini doğrulayabilirsiniz:
wget https://dot.net/v1/dotnet-install.sh
wget https://dot.net/v1/dotnet-install.sig
gpg --verify dotnet-install.sig dotnet-install.sh
Başarılı olduğunda aşağıdaki gibi bir çıkış görmeniz gerekir:
gpg: Signature made <datetime>
gpg: using RSA key B9CF1A51FC7D3ACF
gpg: Good signature from "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 2B93 0AB1 228D 11D5 D7F6 B6AC B9CF 1A51 FC7D 3ACF
Uyarı, anahtarlıkta ortak anahtara güvenmediğiniz, ancak betiğin yine de doğrulandığını gösterir. Doğrulama komutu tarafından döndürülen çıkış kodu, başarıyı gösteren şeklinde 0olmalıdır.