dotnet-install betik başvurusu
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>]
[-NoCdn] [-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-cdn] [--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.
Purpose
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-dir
belirtilen 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 , , , , , , ,
arm
,s390x
ppc64le
veriscv64
değerleridir<auto>
.arm64
x86
x64
amd64
Varsayılan değer şu anda çalışan işletim sistemi mimarisini temsil eden değeridir<auto>
.-AzureFeed|--azure-feed
Yalnı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 yalnızca --no-cdn false olduğunda kullanılır. Varsayılan değer:
https://dotnetcli.azureedge.net/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.1
veya8.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.
version
parametresi, dışındalatest
bir sürüm kullanıldığında parametresini geçersiz kılarchannel
.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-run
Ayarlanı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ü
latest
belirtirseniz, 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-credential
Azure 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.
--help
Betik 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:version
bir değeri olmalıdır.-NoCdn|--no-cdn
Azure Content Delivery Network'ten (CDN) indirmeyi devre dışı bırakır ve doğrudan kazınmamış akışı kullanır.
-NoPath|--no-path
Ayarlanı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.
-ProxyAddress
Ayarlanırsa, yükleyici web istekleri yaparken ara sunucuyu kullanır. (Yalnızca Windows için geçerlidir.)
-ProxyBypassList <LIST_OF_URLS>
ile
ProxyAddress
ayarlanırsa, ara sunucuyu atlayacak virgülle ayrılmış URL'lerin listesini sağlar. (Yalnızca Windows için geçerlidir.)-ProxyUseDefaultCredentials
Ayarlanı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
,signed
,validated
,preview
veGA
. Kullanıcıların çoğu ,preview
veyaGA
niteliklerini kullanmalıdırdaily
.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/installer
alınır ve bu nedenle düzeltmeleri arıyorsanız günlük derlemede görünmeden önce kodundotnet/sdk
akışını beklemeniz ve SDK'dan Yükleyici'ye birleştirilmenizi beklemeniz gerekir.signed
: Microsoft tarafından imzalanan ve doğrulanmamış veya genel kullanıma sunulmamış derlemeler. İmzalı derlemeler doğrulama, önizleme ve GA sürümü için adaylardır. Bu kalite düzeyi genel kullanıma yönelik değildir.validated
: Üzerinde bazı iç testler yapılmış ancak henüz önizleme veya GA olarak yayımlanmamış derlemeler. Bu kalite düzeyi genel kullanıma yönelik değildir.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
--quality
seçenek yalnızca ile--channel
birlikte çalışır, ancak veLTS
kanalları içinSTS
geçerli değildir ve bu kanallardan biri kullanılırsa yoksayılır.SDK yüklemesi için veya biçiminde bir
channel
değerA.B
A.B.Cxx
kullanın. Çalışma zamanı yüklemesi için biçiminde kullanınchannel
A.B
.Hem hem de
version
quality
parametrelerini 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ı.windowsdesktop
Paylaşı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-runtime
Not
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 dotnet
eşdeğerdir.-SkipNonVersionedFiles|--skip-non-versioned-files
Zaten varsa, dotnet.exe gibi sürümlenmemiş dosyaları yüklemeyi atlar.
-UncachedFeed|--uncached-feed
Yalnı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 yalnızca --no-cdn true olduğunda kullanılır.
-KeepZip|--keep-zip
Ayarlanırsa, indirilen SDK arşivi yüklemeden sonra tutulur.
-ZipPath|--zip-path <PATH>
Ayarlanırsa, indirilen SDK arşivi belirtilen yolda depolanır.
-Verbose|--verbose
Tanı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-Channel
birlikte 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
-Channel
yerini alır. Örneğin:2.0.0-preview2-006120
.
Belirtilmezse,
-Version
varsayılan olarak olurlatest
.
Örnekler
En son uzun süreli desteklenen (LTS) sürümü varsayılan konuma yükleyin:
Windows:
./dotnet-install.ps1 -Channel LTS
macOS/Linux:
./dotnet-install.sh --channel LTS
6.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:\cli
macOS/Linux:
./dotnet-install.sh --channel 6.0.1xx --quality preview --install-dir ~/cli
Paylaşılan çalışma zamanının 6.0.0 sürümünü yükleyin:
Windows:
./dotnet-install.ps1 -Runtime dotnet -Version 6.0.0
macOS/Linux:
./dotnet-install.sh --runtime dotnet --version 6.0.0
Betiğ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>
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_ROOT
Bu değişken, Linux ve macOS
$HOME\.dotnet
için ve Windows için PowerShell'de .$HOME/.dotnet
NET'in yüklendiği klasöre ayarlanır.PATH
Bu değişken hem klasörü hem de
DOTNET_ROOT
kullanıcının .dotnet/tools klasörünü içermelidir. Bu genellikle$HOME/.dotnet/tools
Linux ve macOS'ta ve$HOME\.dotnet\tools
Windows'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.sig
bulabilirsiniz. veyacurl
gibiwget
bir 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.sh
dosyadaki imzayla karşılaştırarakdotnet-install.sig
denetler. - 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 0
olmalıdır.