Dela via


referens för dotnet-install scripts

Obs! Beteendet för installationsskriptet har ändrats. Den laddar ned .NET från nya nätverksplatser. Mer information finns i Kritisk: .NET-installationslänkar ändras.

Name

dotnet-install.ps1 | dotnet-install.sh – Skript som används för att installera .NET SDK och den delade körningen.

Sammanfattning

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-skriptet läser även PowerShell-växlar så att du kan använda PowerShell-växlar med skriptet i Linux/macOS-system.

beskrivning

Skripten dotnet-install utför en icke-administratörsinstallation av .NET SDK, som innehåller .NET CLI och den delade körningen. Det finns två skript:

Kommentar

.NET samlar in telemetridata. Mer information och hur du avregistrerar dig finns i .NET SDK-telemetri.

Syfte

Den avsedda användningen av skripten är för CI-scenarier (Continuous Integration), där:

  • SDK:et måste installeras utan användarinteraktion och utan administratörsbehörighet.

  • SDK-installationen behöver inte finnas kvar i flera CI-körningar.

    Den typiska händelsesekvensen:

    • CI utlöses.
    • CI installerar SDK:et med något av dessa skript.
    • CI slutför sitt arbete och rensar tillfälliga data, inklusive SDK-installationen.

Om du vill konfigurera en utvecklingsmiljö eller köra appar använder du installationsprogrammet i stället för dessa skript.

Vi rekommenderar att du använder den stabila versionen av skripten:

Källan för skripten finns på GitHub-lagringsplatsen dotnet/install-scripts .

Skriptbeteende

Båda skripten har samma beteende. De laddar ned ZIP/tarball-filen från CLI-versionen och fortsätter att installera den på standardplatsen eller på en plats som anges av -InstallDir|--install-dir.

Som standard laddar installationsskripten ned SDK:et och installerar det. Om du bara vill hämta den delade körningen anger du -Runtime|--runtime argumentet.

Som standard lägger skriptet till installationsplatsen i $PATH för den aktuella sessionen. Åsidosätt det här standardbeteendet genom att -NoPath|--no-path ange argumentet. Skriptet anger DOTNET_ROOT inte miljövariabeln.

Viktigt!

Skriptet lägger inte till installationsplatsen i användarens PATH miljövariabel. Du måste lägga till den manuellt.

Kontrollera att operativsystemet stöds innan du kör skriptet. Mer information finns i Installera .NET i Windows, Linux och macOS.

Du kan installera en specifik version med argumentet -Version|--version . Versionen måste anges som ett versionsnummer i tre delar, till exempel 2.1.0. Om versionen inte har angetts installerar latest skriptet versionen.

Installationsskripten uppdaterar inte registret i Windows. De laddar bara ned de zippade binärfilerna och kopierar dem till en mapp. Om du vill att registernyckelvärdena ska uppdateras använder du .NET-installationsprogrammet.

Alternativ

  • -Architecture|--architecture <ARCHITECTURE>

    Arkitektur för de .NET-binärfiler som ska installeras. Möjliga värden är <auto>, amd64, x64, x86, arm64, arm, s390x, ppc64leoch riscv64. Standardvärdet är <auto>, som representerar den operativsystemarkitektur som körs för tillfället.

  • -AzureFeed|--azure-feed

    Enbart för internt bruk. Tillåter att du använder ett annat lagringsutrymme för att ladda ned SDK-arkiv från. Den här parametern används endast om --no-cdn är false. Standardvärdet är https://builds.dotnet.microsoft.com/dotnet.

  • -Channel|--channel <CHANNEL>

    Anger källkanalen för installationen. Möjliga värden är:

    • STS: Den senaste versionen av Standard Term Support.
    • LTS: Den senaste versionen av långsiktig support.
    • Tvådelad version i A.B-format som representerar en specifik version (till exempel 3.1 eller 8.0).
    • Tredelad version i A.B.Cxx-format, som representerar en specifik SDK-version (till exempel 8.0.1xx eller 8.0.2xx). Tillgänglig sedan 5.0-versionen.

    Parametern version åsidosätter parametern channel när någon annan version än latest används.

    Standardvärdet är LTS. Mer information om .NET-supportkanaler finns på sidan .NET-supportprincip .

  • -DryRun|--dry-run

    Om det anges utför skriptet inte installationen. I stället visas vilken kommandorad som ska användas för att konsekvent installera den aktuella versionen av .NET CLI. Om du till exempel anger version latestvisas en länk med den specifika versionen så att det här kommandot kan användas deterministiskt i ett byggskript. Den visar också binärfilens plats om du föredrar att installera eller ladda ned den själv.

  • -FeedCredential|--feed-credential

    Används som en frågesträng för att lägga till i Azure-flödet. Det gör det möjligt att ändra URL:en så att den använder icke-offentliga bloblagringskonton.

  • --help

    Skriver ut hjälp för skriptet. Gäller endast för bash-skript. För PowerShell använder du Get-Help ./dotnet-install.ps1.

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

    Anger installationssökvägen. Katalogen skapas om den inte finns. Standardvärdet är %LocalAppData%\Microsoft\dotnet i Windows och $HOME/.dotnet på Linux/macOS. Binärfiler placeras direkt i den här katalogen.

  • -JSonFile|--jsonfile <JSONFILE>

    Anger en sökväg till en global.json fil som ska användas för att fastställa SDK-versionen. Filen global.json måste ha ett värde för sdk:version.

  • -NoCdn|--no-cdn

    Inaktiverar nedladdning från Azure Content Delivery Network (CDN) och använder den oåtkomliga feeden direkt.

  • -NoPath|--no-path

    Om den anges exporteras inte installationsmappen till sökvägen för den aktuella sessionen. Som standard ändrar skriptet PATH, vilket gör .NET CLI tillgängligt omedelbart efter installationen.

  • -ProxyAddress

    Om det anges använder installationsprogrammet proxyn när webbbegäranden görs. (Gäller endast för Windows.)

  • -ProxyBypassList <LIST_OF_URLS>

    Om det anges med ProxyAddress, innehåller en lista över kommaavgränsade URL:er som kringgår proxyn. (Gäller endast för Windows.)

  • -ProxyUseDefaultCredentials

    Om det anges använder installationsprogrammet den aktuella användarens autentiseringsuppgifter när proxyadress används. (Gäller endast för Windows.)

  • -Quality|--quality <QUALITY>

    Laddar ned den senaste versionen av den angivna kvaliteten i kanalen. Möjliga värden är: daily, signed, validated, previewoch GA. De flesta användare bör använda daily, previeweller GA egenskaper.

    De olika kvalitetsvärdena signalerar olika faser i lanseringsprocessen för SDK eller Runtime installerat.

    • daily: De senaste versionerna av SDK eller Runtime. De byggs varje dag och testas inte. De rekommenderas inte för produktionsanvändning men kan ofta användas för att testa specifika funktioner eller korrigeringar direkt efter att de har sammanfogats med produkten. Dessa versioner kommer från dotnet/installer lagringsplatsen, så om du letar efter korrigeringar från dotnet/sdk måste du vänta tills koden flödar och sammanfogas från SDK till Installer innan den visas i en daglig version.
    • signed: Microsoft-signerade versioner som inte har verifierats eller publicerats offentligt. Signerade versioner är kandidater för validering, förhandsversion och GA-version. Den här kvalitetsnivån är inte avsedd för offentligt bruk.
    • validated: Versioner som har haft vissa interna tester gjorda på dem men som ännu inte har släppts som förhandsversion eller GA. Den här kvalitetsnivån är inte avsedd för offentligt bruk.
    • preview: De månatliga offentliga versionerna av nästa version av .NET, som är avsedd för offentlig användning. Rekommenderas inte för produktionsanvändning. Avsedd att tillåta användare att experimentera och testa den nya huvudversionen före lanseringen.
    • GA: De slutliga stabila versionerna av .NET SDK och Runtime. Avsedd för offentligt bruk samt produktionsstöd.

    Alternativet --quality fungerar bara i kombination med --channel, men är inte tillämpligt för kanalerna STS och LTS och ignoreras om någon av dessa kanaler används.

    För en SDK-installation använder du ett channel värde som är i A.B eller A.B.Cxx format. För en körningsinstallation använder du channel i A.B format.

    Använd inte både version och quality parametrar. När quality har angetts avgör skriptet rätt version på egen hand.

    Tillgänglig sedan 5.0-versionen.

  • -Runtime|--runtime <RUNTIME>

    Installerar bara den delade körningen, inte hela SDK:et. Möjliga värden är:

    • dotnet: Den Microsoft.NETCore.App delade körningen.
    • aspnetcore: Den Microsoft.AspNetCore.App delade körningen.
    • windowsdesktop Den Microsoft.WindowsDesktop.App delade körningen.
  • --os <OPERATING_SYSTEM>

    Anger det operativsystem som verktygen installeras för. Möjliga värden är: osx, macos, linux, linux-musl, freebsd.

    Parametern är valfri och bör endast användas när den krävs för att åsidosätta operativsystemet som identifieras av skriptet.

  • -SharedRuntime|--shared-runtime

    Kommentar

    Den här parametern är föråldrad och kan tas bort i en framtida version av skriptet. Det rekommenderade alternativet är alternativet -Runtime|--runtime .

    Installerar bara delade körningsbitar, inte hela SDK:et. Det här alternativet motsvarar att -Runtime|--runtime dotnetange .

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

    Hoppar över installation av filer som inte är versioner, till exempel dotnet.exe, om de redan finns.

  • -UncachedFeed|--uncached-feed

    Enbart för internt bruk. Tillåter att du använder ett annat lagringsutrymme för att ladda ned SDK-arkiv från. Den här parametern används endast om --no-cdn är sant.

  • -KeepZip|--keep-zip

    Om det anges sparas det nedladdade SDK-arkivet efter installationen.

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

Om det anges lagras det nedladdade SDK-arkivet på den angivna sökvägen.

  • -Verbose|--verbose

    Visar diagnostikinformation.

  • -Version|--version <VERSION>

    Representerar en specifik versionsversion. Möjliga värden är:

    • latest: Senaste versionen på kanalen (används med alternativet -Channel ).
    • Tredelade versioner i X.Y.Z-format som representerar en specifik version. ersätter alternativet -Channel . Exempel: 2.0.0-preview2-006120.

    Om det inte anges -Version är standardvärdet latest.

Exempel

  • Installera den senaste lts-versionen (long-term supported) till standardplatsen:

    Windows:

    ./dotnet-install.ps1 -Channel LTS
    

    macOS/Linux:

    ./dotnet-install.sh --channel LTS
    
  • Installera den senaste förhandsversionen av 6.0.1xx SDK på den angivna platsen:

    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
    
  • Installera 6.0.0-versionen av den delade körningen:

    Windows:

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

    macOS/Linux:

    ./dotnet-install.sh --runtime dotnet --version 6.0.0
    
  • Hämta skriptet och installera 6.0.2-versionen bakom en företagsproxy (endast 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;
    
  • Hämta skript och installera .NET CLI one-liner-exempel:

    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>
    

Ange miljövariabler

Att installera .NET manuellt lägger inte till miljövariablerna i hela systemet och fungerar vanligtvis bara för sessionen där .NET installerades. Det finns två miljövariabler som du bör ange för operativsystemet:

  • DOTNET_ROOT

    Den här variabeln är inställd på mappen .NET installerades till, till exempel $HOME/.dotnet för Linux och macOS, och $HOME\.dotnet i PowerShell för Windows.

  • PATH

    Den här variabeln bör innehålla både DOTNET_ROOT mappen och användarens .dotnet/tools-mapp . Detta är $HOME/.dotnet/tools vanligtvis på Linux och macOS och $HOME\.dotnet\tools i PowerShell i Windows.

Dricks

För Linux och macOS använder du echo kommandot för att ange variablerna i din gränssnittsprofil, till exempel .bashrc:

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

Avinstallera

Det finns inget avinstallationsskript. Information om hur du avinstallerar .NET manuellt finns i Ta bort .NET Runtime och SDK.

Signaturverifiering av dotnet-install.sh

Validering av signaturer är en viktig säkerhetsåtgärd som säkerställer ett skripts äkthet och integritet. Genom att verifiera signaturen för ett skript kan du vara säker på att det inte har manipulerats och att det kommer från en betrodd källa.

Här är en stegvis guide om hur du verifierar skriptets dotnet-install.sh äkthet med GPG:

  1. Installera GPG: GPG (GNU Privacy Guard) är ett kostnadsfritt verktyg med öppen källkod för kryptering och signering av data. Du kan installera det genom att följa anvisningarna på GPG-webbplatsen.
  2. Importera vår offentliga nyckel: Ladda ned filen med offentliga installationsskript och importera den sedan till GPG-nyckelringen genom att köra kommandot gpg --import dotnet-install.asc.
  3. Ladda ned signaturfilen: Signaturfilen för vårt bash-skript finns på https://dot.net/v1/dotnet-install.sig. Du kan ladda ned den med hjälp av ett verktyg som wget eller curl.
  4. Verifiera signaturen: Om du vill verifiera signaturen för vårt bash-skript kör du kommandot gpg --verify dotnet-install.sig dotnet-install.sh. Då kontrolleras signaturen för dotnet-install.sh filen mot signaturen dotnet-install.sig i filen.
  5. Kontrollera resultatet: Om signaturen är giltig visas ett meddelande som innehåller Good signature from "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>". Det innebär att skriptet inte har manipulerats och kan vara betrott.

Förbereda miljön

Att installera GPG och importera vår offentliga nyckel är en engångsåtgärd.

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

När du lyckas bör du se utdata som följande:

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

Ladda ned och verifiera

När nyckeln har importerats kan du nu ladda ned skriptet och signaturen och sedan kontrollera att skriptet matchar signaturen:

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

När du lyckas bör du se utdata som följande:

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

Varningen innebär att du inte litar på den offentliga nyckeln i nyckelringen, men skriptet är fortfarande verifierat. Slutkoden som returneras av verifieringskommandot ska vara 0, vilket indikerar att det lyckades.

Se även