Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Notitie
Het gedrag van het installatiescript is gewijzigd. Het downloadt .NET vanaf nieuwe netwerklocaties. Zie Kritiek: .NET-installatiekoppelingen veranderenvoor meer informatie.
Naam
dotnet-install.ps1
|
dotnet-install.sh - Script dat wordt gebruikt om de .NET SDK en de gedeelde runtime te installeren.
Samenvatting
Ramen:
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
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:
- Een PowerShell-script dat werkt in Windows. Zie Installeren in Windows voor installatie-instructies.
- Een bash-script dat werkt in Linux/macOS. Zie Installeren in Linux en Installeren op macOS voor installatie-instructies.
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.
Aanbevolen versie
U wordt aangeraden de stabiele versie van de scripts te gebruiken:
- Bash (Linux/macOS): https://dot.net/v1/dotnet-install.sh
- PowerShell (Windows): https://dot.net/v1/dotnet-install.ps1
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.
Voordat u het script uitvoert, moet u ervoor zorgen dat uw besturingssysteem wordt ondersteund. Zie .NET installeren in Windows, Linux en macOS voor meer informatie.
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,s390x, , ,ppc64leenriscv64. De standaardwaarde is<auto>, die de huidige besturingssysteemarchitectuur vertegenwoordigt.-AzureFeed|--azure-feedUitsluitend voor intern gebruik. Hiermee kunt u een andere opslag gebruiken om SDK-archieven van te downloaden. De standaardwaarde is
https://builds.dotnet.microsoft.com/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.1of8.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
versionparameter overschrijft dechannelparameter wanneer een andere versie danlatestwordt gebruikt.De standaardwaarde is
LTS. Zie de pagina .NET-ondersteuningsbeleid voor meer informatie over .NET-ondersteuningskanalen.-
-DryRun|--dry-runAls 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-credentialWordt gebruikt als een queryreeks om toe te voegen aan de Azure-feed. Hiermee kunt u de URL wijzigen om niet-openbare blobopslagaccounts te gebruiken.
--helpHiermee 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.-NoPath|--no-pathAls 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.
-ProxyAddressIndien 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.)-ProxyUseDefaultCredentialsAls 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,previewenGA.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 dedotnet/installeropslagplaats, dus als u oplossingen zoekt vandotnet/sdku moet wachten op het stromen van code en worden samengevoegd van SDK naar Installatieprogramma voordat deze in een dagelijkse build wordt weergegeven. -
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
--qualityoptie werkt alleen in combinatie met--channel, maar is niet van toepassing op deSTSenLTSkanalen en wordt genegeerd als een van deze kanalen wordt gebruikt.Gebruik voor een SDK-installatie een
channelwaarde die inA.BofA.B.Cxxindeling is. Gebruik voor een runtime-installatiechanneldeA.Bindeling.Gebruik niet zowel als
versionqualityparameters. Wanneerqualityhet 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: DeMicrosoft.NETCore.Appgedeelde runtime. -
aspnetcore: DeMicrosoft.AspNetCore.Appgedeelde runtime. -
windowsdesktopDeMicrosoft.WindowsDesktop.Appgedeelde runtime.
-
--os <OPERATING_SYSTEM>Hiermee geeft u het besturingssysteem waarvoor de hulpprogramma's worden geïnstalleerd. Mogelijke waarden zijn:
osx,macos,linux, ,linux-musl.freebsdDe 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-runtimeNotitie
Deze parameter is verouderd en kan worden verwijderd in een toekomstige versie van het script. Het aanbevolen alternatief is de
-Runtime|--runtimeoptie.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-filesSlaat het installeren van niet-versiebeheerde bestanden, zoals dotnet.exe, over als deze al bestaan.
-UncachedFeed|--uncached-feedUitsluitend voor intern gebruik. Hiermee kunt u een andere opslag gebruiken om SDK-archieven van te downloaden. Met deze parameter wordt
-AzureFeed|--azure-feedoverschreven.-KeepZip|--keep-zipIndien 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|--verboseGeeft diagnostische gegevens weer.
-Version|--version <VERSION>Vertegenwoordigt een specifieke buildversie. Mogelijke waarden zijn:
-
latest: Nieuwste build op het kanaal (gebruikt met de-Channeloptie). - Driedelige versie in X.Y.Z-indeling die een specifieke buildversie vertegenwoordigt; vervangt de
-Channeloptie. Voorbeeld:2.0.0-preview2-006120.
Als dit niet is opgegeven,
-Versionwordt standaard ingesteld oplatest.-
Voorbeelden
Installeer de meest recente lts-versie (long-term supported) op de standaardlocatie:
Ramen:
./dotnet-install.ps1 -Channel LTSmacOS/Linux:
./dotnet-install.sh --channel LTSInstalleer de nieuwste preview-versie van de 6.0.1xx SDK op de opgegeven locatie:
Ramen:
./dotnet-install.ps1 -Channel 6.0.1xx -Quality preview -InstallDir C:\climacOS/Linux:
./dotnet-install.sh --channel 6.0.1xx --quality preview --install-dir ~/cliInstalleer de versie 6.0.0 van de gedeelde runtime:
Ramen:
./dotnet-install.ps1 -Runtime dotnet -Version 6.0.0macOS/Linux:
./dotnet-install.sh --runtime dotnet --version 6.0.0Download 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:
Ramen:
# 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>Installeer meerdere versies terwijl binaire bestanden niet worden overschreven
dotnetvanaf eerdere installaties.Als u .NET SDK's of de .NET-runtime installeert vanaf een eerdere versie boven op een nieuwere versie, moet u deze gebruiken
--skip-non-versioned-files, zodat de niet-aangepastedotnetbestanden uit de eerdere versie niet dezelfde bestanden van de nieuwere versie overschrijven.:~ $ ./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://free.blessedness.top/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://free.blessedness.top/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]
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_ROOTDeze variabele is ingesteld op de map .NET die is geïnstalleerd op, zoals
$HOME/.dotnetvoor Linux en macOS, en$HOME\.dotnetin PowerShell voor Windows.PATHDeze variabele moet zowel de
DOTNET_ROOTmap als de map .dotnet/tools van de gebruiker bevatten. Over het algemeen is$HOME/.dotnet/toolsdit in Linux en macOS en$HOME\.dotnet\toolsin PowerShell in Windows.
Aanbeveling
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:
- 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.
-
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. -
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 zoalswgetofcurl. -
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 hetdotnet-install.shbestand gecontroleerd op basis van de handtekening in hetdotnet-install.sigbestand. -
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.