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:
- 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
, , ,ppc64le
enriscv64
. 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
of8.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 dechannel
parameter wanneer een andere versie danlatest
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
latest
opgeeft, 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
, enpreview
GA
. De meeste gebruikers moeten gebruik makendaily
van ,preview
ofGA
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 dedotnet/installer
opslagplaats, dus als u oplossingen zoekt vandotnet/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 deSTS
enLTS
kanalen en wordt genegeerd als een van deze kanalen wordt gebruikt.Gebruik voor een SDK-installatie een
channel
waarde die inA.B
ofA.B.Cxx
indeling is. Gebruik voor een runtime-installatiechannel
deA.B
indeling.Gebruik niet zowel als
version
quality
parameters. Wanneerquality
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
: DeMicrosoft.NETCore.App
gedeelde runtime.aspnetcore
: DeMicrosoft.AspNetCore.App
gedeelde runtime.windowsdesktop
DeMicrosoft.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 dotnet
van .-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 oplatest
.
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:
- 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.asc
uit 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 zoalswget
ofcurl
. - Controleer de handtekening: Voer de opdracht
gpg --verify dotnet-install.sig dotnet-install.sh
uit om de handtekening van ons bash-script te verifiëren. Hiermee wordt de handtekening van hetdotnet-install.sh
bestand gecontroleerd op basis van de handtekening in hetdotnet-install.sig
bestand. - 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.