Naslaginformatie over dotnet-install-scripts

Naam

dotnet-install.ps1 | dotnet-install.sh - Script dat wordt gebruikt om de .NET SDK en de gedeelde runtime te installeren.

Samenvatting

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

Het bash-script leest ook PowerShell-switches, zodat u PowerShell-switches kunt gebruiken met het script op Linux-/macOS-systemen.

Beschrijving

De dotnet-install scripts voeren een installatie van niet-beheerders uit van de .NET SDK, waaronder de .NET CLI en de gedeelde runtime. Er zijn twee scripts:

Notitie

.NET verzamelt telemetriegegevens. Zie .NET SDK-telemetrie voor meer informatie en hoe u zich afmeldt.

Doel

Het beoogde gebruik van de scripts is voor CI-scenario's (Continuous Integration), waarbij:

  • De SDK moet worden geïnstalleerd zonder tussenkomst van de gebruiker en zonder beheerdersrechten.

  • De SDK-installatie hoeft niet te worden bewaard in meerdere CI-uitvoeringen.

    De typische volgorde van gebeurtenissen:

    • CI wordt geactiveerd.
    • CI installeert de SDK met behulp van een van deze scripts.
    • CI voltooit het werk en wist tijdelijke gegevens, inclusief de SDK-installatie.

Als u een ontwikkelomgeving wilt instellen of apps wilt uitvoeren, gebruikt u de installatieprogramma's in plaats van deze scripts.

U wordt aangeraden de stabiele versie van de scripts te gebruiken:

De bron voor de scripts bevindt zich in de GitHub-opslagplaats dotnet/install-scripts .

Scriptgedrag

Beide scripts hebben hetzelfde gedrag. Ze downloaden het ZIP-/tarball-bestand van de CLI-build en gaan verder met het installeren op de standaardlocatie of op een locatie die is opgegeven door -InstallDir|--install-dir.

Standaard downloaden de installatiescripts de SDK en installeren deze. Als u alleen de gedeelde runtime wilt verkrijgen, geeft u het -Runtime|--runtime argument op.

Standaard voegt het script de installatielocatie toe aan de $PATH voor de huidige sessie. Overschrijf dit standaardgedrag door het -NoPath|--no-path argument op te geven. Het script stelt de DOTNET_ROOT omgevingsvariabele niet in.

Belangrijk

Het script voegt de installatielocatie niet toe aan de omgevingsvariabele van PATH de gebruiker. U moet deze handmatig toevoegen.

Installeer de vereiste afhankelijkheden voordat u het script uitvoert.

U kunt een specifieke versie installeren met behulp van het -Version|--version argument. De versie moet worden opgegeven als een driedelig versienummer, zoals 2.1.0. Als de versie niet is opgegeven, installeert het script de latest versie.

De installatiescripts werken het register niet bij in Windows. Ze downloaden alleen de gezipte binaire bestanden en kopiëren ze naar een map. Als u wilt dat registersleutelwaarden worden bijgewerkt, gebruikt u de .NET-installatieprogramma's.

Opties

  • -Architecture|--architecture <ARCHITECTURE>

    Architectuur van de binaire .NET-bestanden die moeten worden geïnstalleerd. Mogelijke waarden zijn<auto>, amd64, , x64, x86, arm64, arm, , en s390xppc64le. De standaardwaarde is <auto>, die de huidige besturingssysteemarchitectuur vertegenwoordigt.

  • -AzureFeed|--azure-feed

    Uitsluitend voor intern gebruik. Hiermee kunt u een andere opslag gebruiken om SDK-archieven van te downloaden. Deze parameter wordt alleen gebruikt als --no-cdn onwaar is. De standaardwaarde is https://dotnetcli.azureedge.net/dotnet.

  • -Channel|--channel <CHANNEL>

    Hiermee geeft u het bronkanaal voor de installatie. Mogelijke waarden zijn:

    • STS: De meest recente release van Standard Term Support.
    • LTS: De meest recente release voor ondersteuning voor lange termijn.
    • Tweedelige versie in A.B-indeling, die een specifieke release vertegenwoordigt (bijvoorbeeld 3.1 of 8.0).
    • Driedelige versie in A.B.Cxx-indeling, die een specifieke SDK-release vertegenwoordigt (bijvoorbeeld 8.0.1xx of 8.0.2xx). Beschikbaar sinds de release van 5.0.

    De version parameter overschrijft de channel parameter wanneer een andere versie dan latest wordt gebruikt.

    De standaardwaarde is LTS. Zie de pagina .NET-ondersteuningsbeleid voor meer informatie over .NET-ondersteuningskanalen.

  • -DryRun|--dry-run

    Als het script is ingesteld, wordt de installatie niet uitgevoerd. In plaats daarvan wordt weergegeven welke opdrachtregel moet worden gebruikt om de momenteel aangevraagde versie van de .NET CLI consistent te installeren. Als u bijvoorbeeld versie latestopgeeft, wordt er een koppeling met de specifieke versie weergegeven, zodat deze opdracht deterministisch kan worden gebruikt in een buildscript. Ook wordt de locatie van het binaire bestand weergegeven als u het liever zelf wilt installeren of downloaden.

  • -FeedCredential|--feed-credential

    Wordt gebruikt als een queryreeks om toe te voegen aan de Azure-feed. Hiermee kunt u de URL wijzigen om niet-openbare blobopslagaccounts te gebruiken.

  • --help

    Hiermee wordt help voor het script afgedrukt. Alleen van toepassing op bash-script. Voor PowerShell gebruikt u Get-Help ./dotnet-install.ps1.

  • -InstallDir|--install-dir <DIRECTORY>

    Hiermee geeft u het installatiepad. De map wordt gemaakt als deze niet bestaat. De standaardwaarde is %LocalAppData%\Microsoft\dotnet in Windows en $HOME/.dotnet in Linux/macOS. Binaire bestanden worden rechtstreeks in deze map geplaatst.

  • -JSonFile|--jsonfile <JSONFILE>

    Hiermee geeft u een pad naar een global.json-bestand dat wordt gebruikt om de SDK-versie te bepalen. Het bestand global.json moet een waarde hebben voor sdk:version.

  • -NoCdn|--no-cdn

    Hiermee wordt het downloaden van het Azure Content Delivery Network (CDN) uitgeschakeld en wordt de niet-cache-feed rechtstreeks gebruikt.

  • -NoPath|--no-path

    Als deze optie is ingesteld, wordt de installatiemap niet geëxporteerd naar het pad voor de huidige sessie. Het script wijzigt standaard het PAD, waardoor de .NET CLI direct na de installatie beschikbaar wordt.

  • -ProxyAddress

    Indien ingesteld, gebruikt het installatieprogramma de proxy bij het indienen van webaanvragen. (Alleen geldig voor Windows.)

  • -ProxyBypassList <LIST_OF_URLS>

    Als deze optie is ingesteld ProxyAddress, geeft u een lijst met door komma's gescheiden URL's op waarmee de proxy wordt overgeslagen. (Alleen geldig voor Windows.)

  • -ProxyUseDefaultCredentials

    Als dit is ingesteld, gebruikt het installatieprogramma de referenties van de huidige gebruiker bij het gebruik van het proxyadres. (Alleen geldig voor Windows.)

  • -Quality|--quality <QUALITY>

    Downloadt de nieuwste build van de opgegeven kwaliteit in het kanaal. De mogelijke waarden zijn: daily, signed, validated, en previewGA. De meeste gebruikers moeten gebruik maken dailyvan , previewof GA kwaliteiten.

    De verschillende kwaliteitswaarden geven verschillende fasen aan van het releaseproces van de SDK of Runtime die is geïnstalleerd.

    • daily: De nieuwste builds van de SDK of Runtime. Ze worden elke dag gebouwd en worden niet getest. Ze worden niet aanbevolen voor productiegebruik, maar kunnen vaak worden gebruikt om specifieke functies of fixes te testen direct nadat ze zijn samengevoegd in het product. Deze builds zijn afkomstig van de dotnet/installer opslagplaats, dus als u oplossingen zoekt van dotnet/sdk u moet wachten op het stromen van code en worden samengevoegd van SDK naar Installatieprogramma voordat deze in een dagelijkse build wordt weergegeven.
    • signed: door Microsoft ondertekende builds die niet zijn gevalideerd of openbaar worden uitgebracht. Ondertekende builds zijn kandidaten voor validatie, preview en algemene beschikbaarheid. Dit kwaliteitsniveau is niet bedoeld voor openbaar gebruik.
    • validated: Builds waarvoor enkele interne tests zijn uitgevoerd, maar die nog niet zijn uitgebracht als preview- of GA-versie. Dit kwaliteitsniveau is niet bedoeld voor openbaar gebruik.
    • preview: De maandelijkse openbare releases van de volgende versie van .NET, bedoeld voor openbaar gebruik. Niet aanbevolen voor productiegebruik. Bedoeld om gebruikers in staat te stellen de nieuwe primaire versie te experimenteren en te testen vóór de release.
    • GA: De definitieve stabiele releases van de .NET SDK en Runtime. Bedoeld voor openbaar gebruik en productieondersteuning.

    De --quality optie werkt alleen in combinatie met --channel, maar is niet van toepassing op de STS en LTS kanalen en wordt genegeerd als een van deze kanalen wordt gebruikt.

    Gebruik voor een SDK-installatie een channel waarde die in A.B of A.B.Cxx indeling is. Gebruik voor een runtime-installatie channel de A.B indeling.

    Gebruik niet zowel als versionquality parameters. Wanneer quality het script is opgegeven, wordt de juiste versie zelf bepaald.

    Beschikbaar sinds de release van 5.0.

  • -Runtime|--runtime <RUNTIME>

    Hiermee wordt alleen de gedeelde runtime geïnstalleerd, niet de volledige SDK. Mogelijke waarden zijn:

    • dotnet: De Microsoft.NETCore.App gedeelde runtime.
    • aspnetcore: De Microsoft.AspNetCore.App gedeelde runtime.
    • windowsdesktop De Microsoft.WindowsDesktop.App gedeelde runtime.
  • --os <OPERATING_SYSTEM>

    Hiermee geeft u het besturingssysteem waarvoor de hulpprogramma's worden geïnstalleerd. Mogelijke waarden zijn: osx, macos, linux, , linux-musl. freebsd

    De parameter is optioneel en mag alleen worden gebruikt wanneer het is vereist om het besturingssysteem te overschrijven dat door het script wordt gedetecteerd.

  • -SharedRuntime|--shared-runtime

    Notitie

    Deze parameter is verouderd en kan worden verwijderd in een toekomstige versie van het script. Het aanbevolen alternatief is de -Runtime|--runtime optie.

    Hiermee worden alleen de gedeelde runtime-bits geïnstalleerd, niet de volledige SDK. Deze optie is gelijk aan het opgeven -Runtime|--runtime dotnetvan .

  • -SkipNonVersionedFiles|--skip-non-versioned-files

    Slaat het installeren van niet-versiebeheerde bestanden, zoals dotnet.exe, over als deze al bestaan.

  • -UncachedFeed|--uncached-feed

    Uitsluitend voor intern gebruik. Hiermee kunt u een andere opslag gebruiken om SDK-archieven van te downloaden. Deze parameter wordt alleen gebruikt als --no-cdn waar is.

  • -KeepZip|--keep-zip

    Indien ingesteld, wordt het gedownloade SDK-archief bewaard na de installatie.

  • -ZipPath|--zip-path <PATH>

Als dit is ingesteld, wordt het gedownloade SDK-archief opgeslagen op het opgegeven pad.

  • -Verbose|--verbose

    Geeft diagnostische gegevens weer.

  • -Version|--version <VERSION>

    Vertegenwoordigt een specifieke buildversie. Mogelijke waarden zijn:

    • latest: Nieuwste build op het kanaal (gebruikt met de -Channel optie).
    • Driedelige versie in X.Y.Z-indeling die een specifieke buildversie vertegenwoordigt; vervangt de -Channel optie. Voorbeeld: 2.0.0-preview2-006120.

    Als dit niet is opgegeven, -Version wordt standaard ingesteld op latest.

Voorbeelden

  • Installeer de meest recente lts-versie (long-term supported) op de standaardlocatie:

    Windows:

    ./dotnet-install.ps1 -Channel LTS
    

    macOS/Linux:

    ./dotnet-install.sh --channel LTS
    
  • Installeer de nieuwste preview-versie van de 6.0.1xx SDK op de opgegeven locatie:

    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
    
  • Installeer de versie 6.0.0 van de gedeelde runtime:

    Windows:

    ./dotnet-install.ps1 -Runtime dotnet -Version 6.0.0
    

    macOS/Linux:

    ./dotnet-install.sh --runtime dotnet --version 6.0.0
    
  • Download het script en installeer de versie 6.0.2 achter een bedrijfsproxy (alleen 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;
    
  • Download script en installeer .NET CLI one-liner-voorbeelden:

    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>
    

Omgevingsvariabelen instellen

Als u .NET handmatig installeert, worden de omgevingsvariabelen niet systeembreed toegevoegd en werkt het over het algemeen alleen voor de sessie waarin .NET is geïnstalleerd. Er zijn twee omgevingsvariabelen die u moet instellen voor uw besturingssysteem:

  • DOTNET_ROOT

    Deze variabele is ingesteld op de map .NET die is geïnstalleerd op, zoals $HOME/.dotnet voor Linux en macOS, en $HOME\.dotnet in PowerShell voor Windows.

  • PATH

    Deze variabele moet zowel de DOTNET_ROOT map als de map .dotnet/tools van de gebruiker bevatten. Over het algemeen is $HOME/.dotnet/tools dit in Linux en macOS en $HOME\.dotnet\tools in PowerShell in Windows.

Tip

Voor Linux en macOS gebruikt u de echo opdracht om de variabelen in uw shell-profiel in te stellen, zoals .bashrc:

echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools' >> ~/.bashrc

Verwijderen

Er is geen verwijderingsscript. Zie .NET Runtime en SDK verwijderen voor meer informatie over het handmatig verwijderen van .NET.

Handtekeningvalidatie van dotnet-install.sh

Handtekeningvalidatie is een belangrijke beveiligingsmaatregel die de echtheid en integriteit van een script garandeert. Door de handtekening van een script te verifiëren, kunt u er zeker van zijn dat er niet met het script is geknoeid en dat het afkomstig is van een vertrouwde bron.

Hier volgt een stapsgewijze handleiding voor het verifiëren van de echtheid van het dotnet-install.sh script met behulp van GPG:

  1. Installeer GPG: GPG (GNU Privacy Guard) is een gratis en opensource-hulpprogramma voor het versleutelen en ondertekenen van gegevens. U kunt deze installeren door de instructies op de GPG-website te volgen.
  2. Importeer onze openbare sleutel: download het bestand met de openbare sleutel voor installatiescripts en importeer het vervolgens in uw GPG-sleutelring door de opdracht gpg --import dotnet-install.ascuit te voeren.
  3. Download het handtekeningbestand: het handtekeningbestand voor ons bash-script is beschikbaar op https://dot.net/v1/dotnet-install.sig. U kunt het downloaden met behulp van een hulpprogramma zoals wget of curl.
  4. Controleer de handtekening: Voer de opdracht gpg --verify dotnet-install.sig dotnet-install.shuit om de handtekening van ons bash-script te verifiëren. Hiermee wordt de handtekening van het dotnet-install.sh bestand gecontroleerd op basis van de handtekening in het dotnet-install.sig bestand.
  5. Controleer het resultaat: Als de handtekening geldig is, ziet u een bericht met Good signature from "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>". Dit betekent dat er niet met het script is geknoeid en kan worden vertrouwd.

Omgeving voorbereiden

Het installeren van GPG en het importeren van onze openbare sleutel is een eenmalige bewerking.

sudo apt install gpg
wget https://dot.net/v1/dotnet-install.asc
gpg --import dotnet-install.asc

Als dit is gelukt, ziet u uitvoer als volgt:

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

Downloaden en verifiëren

Als de sleutel is geïmporteerd, kunt u nu het script en de handtekening downloaden en vervolgens controleren of het script overeenkomt met de handtekening:

wget https://dot.net/v1/dotnet-install.sh
wget https://dot.net/v1/dotnet-install.sig
gpg --verify dotnet-install.sig dotnet-install.sh

Als dit is gelukt, ziet u uitvoer als volgt:

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

De waarschuwing betekent dat u de openbare sleutel niet vertrouwt in de sleutelring, maar dat het script nog steeds wordt geverifieerd. De afsluitcode die door de verificatieopdracht wordt geretourneerd, moet zijn 0, wat aangeeft dat de code is geslaagd.

Zie ook