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 系統上的指令碼。
描述
腳本 dotnet-install
會執行 .NET SDK 的非系統管理員安裝,其中包括 .NET CLI 和共用執行時間。 有兩個腳本:
- 在 Windows 上運作的 PowerShell 腳本。
- 在 Linux/macOS 上運作的 Bash 腳本。
注意
.NET 會收集遙測資料。 若要深入瞭解以及如何退出,請參閱 .NET SDK 遙測。
目的
腳本的用途適用于持續整合 (CI) 案例,其中:
SDK 必須安裝,而不需使用者互動,而且沒有系統管理員許可權。
SDK 安裝不需要跨多個 CI 執行保存。
一般事件序列:
- 會觸發 CI。
- CI 會使用下列其中一個腳本來安裝 SDK。
- CI 會完成其工作,並清除暫存資料,包括 SDK 安裝。
若要設定開發環境或執行應用程式,請使用安裝程式,而不是這些腳本。
建議的版本
我們建議您使用穩定版本的腳本:
- Bash (Linux/macOS) : https://dot.net/v1/dotnet-install.sh
- PowerShell (Windows):https://dot.net/v1/dotnet-install.ps1
腳本行為
這兩個指令碼有相同的行為。 他們會從 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>
、amd64
、x64
、x86
arm64
、、arm
和s390x
。 預設值為<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
時,參數version
會channel
覆寫 參數。預設值是
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
、、signed
validated
、preview
、GA
。 僅適用于 與 搭配channel
運作。 不適用於 STS 和 LTS 通道,如果使用其中一個通道,則會予以忽略。針對 SDK 安裝,請使用
channel
A.B
或A.B.Cxx
格式。 針對執行時間安裝,請使用channel
A.B
格式。請勿同時使用
version
和quality
參數。 指定 時quality
,腳本會自行決定適當的版本。自 5.0 版起提供。
-Runtime|--runtime <RUNTIME>
只安裝共用執行階段,而不是整個 SDK。 可能的值包括:
dotnet
-Microsoft.NETCore.App
共用執行階段。aspnetcore
-Microsoft.AspNetCore.App
共用執行階段。windowsdesktop
-Microsoft.WindowsDesktop.App
共用執行階段。
--os <OPERATING_SYSTEM>
指定要安裝工具的作業系統。 可能的值為:
osx
、、linux
linux-musl
、freebsd
。參數是選擇性的,只有在需要覆寫腳本偵測到的作業系統時,才應該使用。
-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