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.

Betiklerin kararlı sürümünü kullanmanızı öneririz:

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 gerekli bağımlılıkları yükleyin.

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 , , , , , , , arms390xve ppc64ledeğerleridir<auto>. arm64x86x64amd64 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 veya 8.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ışında latest 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ü 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-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:versionbir 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 ProxyAddressayarlanı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, previewve GA. Kullanıcıların çoğu , previewveya GA 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 depodan dotnet/installer alınır ve bu nedenle düzeltmeleri arıyorsanız günlük derlemede görünmeden önce kodun dotnet/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 --channelbirlikte çalışır, ancak ve LTS kanalları için STS 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ğer A.BA.B.Cxx kullanın. Çalışma zamanı yüklemesi için biçiminde kullanın channelA.B .

    Hem hem de versionquality parametrelerini kullanmayın. Belirtildiğinde quality , 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şılan Microsoft.NETCore.App çalışma zamanı.
    • aspnetcore: Paylaşılan Microsoft.AspNetCore.App çalışma zamanı.
    • windowsdesktop Paylaşılan Microsoft.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 dotneteş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 olur latest.

Ö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/.dotnetNET'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:

  1. 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.
  2. 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.
  3. İmza dosyasını indirin: Bash betiğimizin imza dosyasını adresinde https://dot.net/v1/dotnet-install.sigbulabilirsiniz. veya curlgibi wget bir araç kullanarak indirebilirsiniz.
  4. İ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ırarak dotnet-install.sig denetler.
  5. 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.

Ayrıca bkz.