dotnet-install 指令碼參考

名稱

dotnet-install.ps1 | dotnet-install.sh - 用來安裝 .NET SDK 和共用執行時間的腳本。

概要

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] [-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] [--verbose]
    [--version <VERSION>]

dotnet-install.sh --help

Bash 指令碼也能讀取 PowerShell 參數,因此您可以搭配 PowerShell 參數使用 Linux/macOS 系統上的指令碼。

Description

腳本 dotnet-install 會執行 .NET SDK 的非系統管理員安裝,其中包括 .NET CLI 和共用執行時間。 有兩個腳本:

  • 在 Windows 上運作的 PowerShell 腳本。
  • 在 Linux/macOS 上運作的 Bash 腳本。

注意

.NET 會收集遙測資料。 若要深入瞭解以及如何退出,請參閱 .NET SDK 遙測

目的

腳本的用途適用于持續整合 (CI) 案例,其中:

  • SDK 必須安裝,而不需使用者互動,而且沒有系統管理員許可權。

  • SDK 安裝不需要跨多個 CI 執行保存。

    一般事件序列:

    • 會觸發 CI。
    • CI 會使用下列其中一個腳本來安裝 SDK。
    • CI 會完成其工作,並清除暫存資料,包括 SDK 安裝。

若要設定開發環境或執行應用程式,請使用安裝程式,而不是這些腳本。

我們建議您使用穩定版本的腳本:

腳本行為

這兩個指令碼有相同的行為。 他們會從 CLI 組建卸載下載 ZIP/tarball 檔案,並繼續將它安裝在預設位置或 指定的 -InstallDir|--install-dir 位置。

根據預設,安裝指令碼會下載並安裝 SDK。 如果您想要只取得共用執行階段,請指定 -Runtime|--runtime 引數。

根據預設,指令碼會將安裝位置新增到目前工作階段的 $PATH。 指定 -NoPath|--no-path 引數可以覆寫此預設行為。 腳本不會設定 DOTNET_ROOT 環境變數。

執行指令碼之前,請安裝所有必要的相依性 (英文)

您可以使用 -Version|--version 引數安裝特定版本。 版本必須指定為三部分版本號碼,例如 2.1.0 。 如果未指定版本,腳本會 latest 安裝版本。

安裝腳本不會更新 Windows 上的登錄。 它們只會下載壓縮的二進位檔,並將其複製到資料夾。 如果您想要更新登錄機碼值,請使用 .NET 安裝程式。

選項

  • -Architecture|--architecture <ARCHITECTURE>

    要安裝的 .NET 二進位檔架構。 可能的值為 <auto>amd64x64x86arm64 、、 arms390x 。 預設值為 <auto>,代表目前正在執行的 OS 架構。

  • -AzureFeed|--azure-feed

    僅供內部使用。 允許使用不同的儲存體從 下載 SDK 封存。 只有在 --no-cdn 為 false 時,才會使用此參數。 預設為 https://dotnetcli.azureedge.net/dotnet

  • -Channel|--channel <CHANNEL>

    指定安裝的來源通道。 可能的值包括:

    • STS - 最新的標準字詞支援版本
    • LTS - 最新的長期支援版本
    • A.B 格式的兩部分版本,代表特定的版本 (, 3.1 例如 或 6.0) 。
    • A.B.Cxx 格式的三部分版本,代表特定的 SDK 版本 (例如 6.0.1xx 或 6.0.2xx) 。 自 5.0 版起提供。

    使用 以外的任何版本 latest 時,參數 versionchannel 覆寫 參數。

    預設值是 LTS。 如需有關 .NET 支援通道的詳細資訊,請參閱 .NET Core 支援政策 \(英文\) 頁面。

  • -DryRun|--dry-run

    如果設定,指令碼將不會執行安裝。 相反地,它會顯示用來一致安裝目前要求的 .NET CLI 版本的命令列。 例如,如果您指定 latest 版本,就會顯示特定版本的連結,以便在建置指令碼中以決定性方式使用此命令。 如果您想要自行進行安裝或下載,它也會顯示二進位檔位置。

  • -FeedCredential|--feed-credential

    用來作為要附加至 Azure 摘要的查詢字串。 這可允許變更 URL 以使用非公用 Blob 儲存體帳戶。

  • --help

    印出指令碼的說明。 僅適用于 Bash 腳本。 針對 PowerShell,請使用 Get-Help ./dotnet-install.ps1

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

    指定安裝路徑。 如果目錄不存在,則會建立它。 預設值為 Windows 上的 %LocalAppData%\Microsoft\dotnet ,並在 Linux/macOS 上 $HOME/.dotnet 。 二進位檔會直接放在此目錄中。

  • -JSonFile|--jsonfile <JSONFILE>

    指定將用來判斷 SDK 版本 之 global.json 檔案的路徑。 global.json檔案必須具有 的值 sdk:version

  • -NoCdn|--no-cdn

    不允許從 Azure 內容傳遞網路 (CDN) 下載,而直接使用未快取的摘要。

  • -NoPath|--no-path

    如果設定,就不會將安裝資料夾匯出至目前工作階段的路徑。 根據預設,腳本會修改 PATH,這會在安裝後立即提供 .NET CLI。

  • -ProxyAddress

    如果設定,安裝程式會使用此 Proxy 進行 Web 要求。 (僅適用于 Windows.)

  • -ProxyBypassList <LIST_OF_URLS>

    如果設定為 ProxyAddress ,則提供會略過 Proxy 的逗號分隔 URL 清單。 (僅適用于 Windows.)

  • ProxyUseDefaultCredentials

    如果設定,當使用 Proxy 位址時,安裝程式會使用目前使用者的認證。 (僅適用于 Windows.)

  • -Quality|--quality <QUALITY>

    下載通道中指定品質的最新組建。 可能的值為: daily 、、 signedvalidatedpreviewGA 。 僅適用于 與 搭配 channel 運作。 不適用於目前的 和 LTS 通道,如果使用其中一個通道,則會忽略。

    針對 SDK 安裝,請使用 channelA.BA.B.Cxx 格式。 針對執行時間安裝,請使用 channelA.B 格式。

    請勿同時使用 versionquality 參數。 指定 時 quality ,腳本會自行決定適當的版本。

    自 5.0 版起提供。

  • -Runtime|--runtime <RUNTIME>

    只安裝共用執行階段,而不是整個 SDK。 可能的值包括:

    • dotnet - Microsoft.NETCore.App 共用執行階段。
    • aspnetcore - Microsoft.AspNetCore.App 共用執行階段。
    • windowsdesktop - Microsoft.WindowsDesktop.App 共用執行階段。
  • --os <OPERATING_SYSTEM>

    指定要安裝工具的作業系統。 可能的值為: osx 、、 linuxlinux-muslfreebsd

    參數是選擇性的,只有在需要覆寫腳本偵測到的作業系統時,才應該使用。

  • -SharedRuntime|--shared-runtime

    注意

    此參數已被淘汰,在未來的指令碼版本中可能會將其移除。 建議的替代方案是 -Runtime|--runtime 選項。

    只安裝共用執行階段位元,而不是整個 SDK。 此選項相當於指定 -Runtime|--runtime dotnet

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

    如果已經有非版本控制的檔案 (例如 dotnet.exe) 存在,便略過其安裝。

  • -UncachedFeed|--uncached-feed

    僅供內部使用。 允許使用不同的儲存體從 下載 SDK 封存。 只有當 --no-cdn 為 true 時,才會使用此參數。

  • -Verbose|--verbose

    顯示診斷資訊。

  • -Version|--version <VERSION>

    代表特定的組建版本。 可能的值包括:

    • latest - 通道上的最新組建 (與 -Channel 選項搭配使用)。
    • 代表特定組建版本的 X.Y.Z 格式三段式版本;取代 -Channel 選項。 例如:2.0.0-preview2-006120

    如果未指定,-Version 會預設為 latest

範例

  • 將最新的長期支援 (LTS) 版本安裝至預設位置︰

    Windows:

    ./dotnet-install.ps1 -Channel LTS
    

    macOS/Linux:

    ./dotnet-install.sh --channel LTS
    
  • 將 6.0.1xx SDK 的最新預覽版本安裝至指定的位置:

    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
    
  • 安裝共用執行時間的 6.0.0 版:

    Windows:

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

    macOS/Linux:

    ./dotnet-install.sh --runtime dotnet --version 6.0.0
    
  • 取得腳本並在公司 Proxy 後方安裝 6.0.2 版, (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;
    
  • 取得腳本並安裝 .NET CLI 單行程式碼範例:

    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>
    

設定環境變數

手動安裝 .NET 不會全系統新增環境變數,而且通常只適用于安裝 .NET 的會話。 您應該為作業系統設定兩個環境變數:

  • DOTNET_ROOT

    此變數會設定為已安裝 .NET 的資料夾,例如 $HOME/.dotnet Linux 和 macOS,以及在 $HOME\.dotnet 適用于 Windows 的 PowerShell 中。

  • PATH

    此變數應該同時包含 DOTNET_ROOT 資料夾和使用者的 .dotnet/tools 資料夾。 這通常 $HOME/.dotnet/tools 位於 Linux 和 macOS 上,以及在 $HOME\.dotnet\tools Windows 上的 PowerShell 中。

提示

針對 Linux 和 macOS,請使用 echo 命令在殼層設定檔中設定變數,例如 .bashrc

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

另請參閱