使用此任務從 internet 或本地快取取得特定版本的 .NET Core SDK,並將其加入 PATH。 使用此任務可更改後續任務中使用的 .NET 核心版本。 此工作也提供 Proxy 支援。
語法
# Use .NET Core v2
# Acquires a specific version of the .NET Core SDK from the internet or the local cache and adds it to the PATH. Use this task to change the version of .NET Core used in subsequent tasks. Additionally provides proxy support.
- task: UseDotNet@2
inputs:
#packageType: 'sdk' # 'runtime' | 'sdk'. Package to install. Default: sdk.
#useGlobalJson: false # boolean. Optional. Use when packageType = sdk. Use global json. Default: false.
#workingDirectory: # string. Optional. Use when useGlobalJson = true. Working Directory.
#version: # string. Optional. Use when useGlobalJson = false || packageType = runtime. Version.
#includePreviewVersions: false # boolean. Optional. Use when useGlobalJson = false || packageType = runtime. Include Preview Versions. Default: false.
#requestTimeout: '300000' # string. Set timeout for package download request. Default: 300000.
# Advanced
#vsVersion: # string. Compatible Visual Studio version.
#checkForExistingVersion: false # boolean. Check for existing installation. Default: false.
#installationPath: '$(Agent.ToolsDirectory)/dotnet' # string. Path To Install .Net Core. Default: $(Agent.ToolsDirectory)/dotnet.
#performMultiLevelLookup: false # boolean. Perform Multi Level Lookup. Default: false.
# Use .NET Core v2
# Acquires a specific version of the .NET Core SDK from the internet or the local cache and adds it to the PATH. Use this task to change the version of .NET Core used in subsequent tasks. Additionally provides proxy support.
- task: UseDotNet@2
inputs:
#packageType: 'sdk' # 'runtime' | 'sdk'. Package to install. Default: sdk.
#useGlobalJson: false # boolean. Optional. Use when packageType = sdk. Use global json. Default: false.
#workingDirectory: # string. Optional. Use when useGlobalJson = true. Working Directory.
#version: # string. Optional. Use when useGlobalJson = false || packageType = runtime. Version.
#includePreviewVersions: false # boolean. Optional. Use when useGlobalJson = false || packageType = runtime. Include Preview Versions. Default: false.
#requestTimeout: '300000' # string. Set timeout for package download request. Default: 300000.
# Advanced
#vsVersion: # string. Compatible Visual Studio version.
#installationPath: '$(Agent.ToolsDirectory)/dotnet' # string. Path To Install .Net Core. Default: $(Agent.ToolsDirectory)/dotnet.
#performMultiLevelLookup: false # boolean. Perform Multi Level Lookup. Default: false.
# Use .NET Core v2
# Acquires a specific version of the .NET Core SDK from the internet or the local cache and adds it to the PATH. Use this task to change the version of .NET Core used in subsequent tasks. Additionally provides proxy support.
- task: UseDotNet@2
inputs:
#packageType: 'sdk' # 'runtime' | 'sdk'. Package to install. Default: sdk.
#useGlobalJson: false # boolean. Optional. Use when packageType = sdk. Use global json. Default: false.
#workingDirectory: # string. Optional. Use when useGlobalJson = true. Working Directory.
#version: # string. Optional. Use when useGlobalJson = false || packageType = runtime. Version.
#includePreviewVersions: false # boolean. Optional. Use when useGlobalJson = false || packageType = runtime. Include Preview Versions. Default: false.
# Advanced
#vsVersion: # string. Compatible Visual Studio version.
#installationPath: '$(Agent.ToolsDirectory)/dotnet' # string. Path To Install .Net Core. Default: $(Agent.ToolsDirectory)/dotnet.
#performMultiLevelLookup: false # boolean. Perform Multi Level Lookup. Default: false.
輸入
packageType
-
安裝套件
string。 允許的值: runtime、( sdk SDK (包含執行時))。 預設值: sdk。
指定是只安裝 .NET 執行環境還是 SDK。
useGlobalJson
-
使用全域 json
boolean。 自選。
packageType = sdk時使用 。 預設值: false。
從檔案安裝所有 SDK global.json 。 這些檔案是從 中搜尋的 system.DefaultWorkingDirectory。 您可以藉由設定工作目錄輸入來變更搜尋根路徑。
該任務也會讀取sdk.rollForwardglobal.json並安裝符合指定滾轉政策的最新版本。 例如,如果你 global.json 指定 "version": "8.0.302" , "rollForward": "latestFeature"任務會安裝最新的 8.0.x SDK,而非精確版本。 若 sdk.rollForward 不存在,任務將安裝與先前行為相符的精確版本 sdk.version。 欲了解更多支持 rollForward 價值資訊,請參閱 備註 區及 global.json 概述。
輸入中UseDotNet@2.version描述的 and 6.1.x 格式(作為.x萬用字元)是用於version任務中的輸入,而非 sdk.versionglobal.json。6.x
如果你收到像是 ##[error]Version 6.0.x is not allowed. Allowed version types are: majorVersion.x, majorVersion.minorVersion.x, majorVersion.minorVersion.patchVersion. More details: Only explicit versions and accepted, such as: 2.2.301. Version: 6.0.x is not valid. 你正在使用 global.json這類錯誤訊息,請檢查 sdk.version 你的 global.json。
欲了解更多關於 global.json 的資訊,請參見 選擇使用.NET版本。
workingDirectory
-
工作目錄
string。 自選。
useGlobalJson = true時使用 。
指定使用useGlobalJson檔案時應從哪裡global.json搜尋的路徑。 若值為空, system.DefaultWorkingDirectory 則視為根路徑。
version
-
版本
string。 自選。
useGlobalJson = false || packageType = runtime時使用 。
指定要安裝的 .NET Core SDK 版本或執行環境。 版本值格式會以範例顯示:
-
2.x安裝最新的 SDK 或執行時,並附帶指定的主要版本。2 -
3.1.x安裝最新的 SDK 或執行環境,包含指定的主要與次要版本,3且1。 -
3.1.402安裝指定的 SDK 或執行時版本。3.1.402
SDK 或執行時安裝的版本值都在檔案中 releases.json 。 主 releases.json /次要版本的連結位於 releases-index 檔案中。 例如, 3.1 版本的releases.json 檔案連結。
vsVersion
-
相容Visual Studio版本
string。
指定一個相容的 Visual Studio 版本,以安裝對應的 .NET Core SDK 安裝。 該值必須是完整的版本號,例如 16.6.4,包含主要版本、次要版本及補丁編號。
SDK version 或執行時安裝的版本值(用於字串)已在檔案中 releases.json 。 主 releases.json /次要版本的連結位於 releases-index 檔案中。 例如, 3.1 版本的releases.json 檔案連結。
checkForExistingVersion
-
檢查現有安裝狀況
boolean。 預設值: false。
如果你想在嘗試下載前,先確認指定版本是否已經安裝。 只有在 installationPath 為空(即預設值)時才使用。
includePreviewVersions
-
包含預覽版本
boolean。 自選。
useGlobalJson = false || packageType = runtime時使用 。 預設值: false。
若設定為 true,則包含在搜尋最新執行時/SDK 版本的預覽版本,例如搜尋 2.2.x 或 3.1.x。 如果你指定精確版本,例如 3.0.100-preview3-010431,這個設定會被忽略。
installationPath
-
安裝 .Net Core 的路徑
string。 預設值: $(Agent.ToolsDirectory)/dotnet。
指定 .NET 核心 SDK 或執行時應安裝於何處。 不同路徑可能會對 .NET 的行為產生以下影響。
-
$(Agent.ToolsDirectory)使用此路徑會在代理程式上快取安裝,因為該目錄不會在管線間進行清理。 在代理程式上執行的所有管線都可以存取先前安裝的版本。 -
$(Agent.TempDirectory):使用此路徑可確保管線不會使用快取版本的 .NET Core,因為該資料夾會在每次管線後清理。 - 另一條路徑:只要代理程序有權限存取該路徑,你就可以使用任何路徑。 這會變更計算機的狀態,並影響其上執行的所有進程。
注意
你可以使用 多層級查詢設定,performMultiLevelLookup,來設定.NET主機如何搜尋版本。
performMultiLevelLookup
-
執行多層級查找
boolean。 預設值: false。
配置 .NET 主機程序在尋找合適共享框架時的行為。 這些值為:
-
false: 主機程序僅搜尋任務指定的資料夾中存在的版本。 -
true:主機程序將利用多層查找在預先定義的全域位置搜尋。 預設的全域位置如下:-
C:\Program Files\dotnet(64 位元過程) -
C:\Program Files (x86)\dotnet(32 位元程序)
-
了解更多關於 多層次 SharedFX 查詢的資訊。
注意
performMultiLevelLookup 僅適用於Windows型代理人。
requestTimeout
-
設定套件下載要求逾時
string。 預設值: 300000。
為任務為取得 .NET 套件所發出的 HTTP 請求提供逾時值。 此值以毫秒為單位。 默認值為300000毫秒(5分鐘)。 不能超過 600000 毫秒 (10 分鐘)。
工作控制選項
除了工作輸入之外,所有工作都有控制選項。 如需詳細資訊,請參閱 控制項選項和一般工作屬性。
輸出變數
沒有。
言論
使用.NET核心任務會從 inte rnet 或工具快取取得特定版本的
工具安裝程式方法也可讓您與代理程式更新週期分離。 如果你想要的 .NET Core 版本在 Azure Pipelines 代理程式(託管或私人)中缺少,你可以用這個任務在代理程式上安裝正確的版本。
與 global.json 的滾轉支援
當 useGlobalJson 設定為 true時,任務會從你的global.json檔案讀取該sdk.rollForward屬性,並安裝符合指定滾轉政策的最新 SDK 版本。 對於 disable、 patch、 feature和 minor 政策,這與 .NET CLI 在本地解析 SDK 版本的方式相符;major且latestMajor目前在同一主要版本中解析。
如果 sdk.rollForward 不存在於你的 global.json中,該任務會安裝 中指定的精確版本。sdk.version 這和之前的行為相符。
下表顯示每個 rollForward 值如何影響版本解析度:
| rollForward 值 | 行為 | 範例:版本 8.0.302 解析為 |
|---|---|---|
disable |
安裝了指定的版本。 | 8.0.302 |
patch |
在同一功能頻段內安裝最新的修補程式。 | 最新消息 >=8.0.300 <8.0.400 |
latestPatch |
與 patch 相同。 |
最新消息 >=8.0.300 <8.0.400 |
feature |
在同一 major 與 minor 版本中安裝最新的功能頻段。 | 最新消息 8.0.x |
latestFeature |
與 feature 相同。 |
最新消息 8.0.x |
minor |
在同一主版本中安裝最新的次要版本。 | 最新消息 8.x |
latestMinor |
與 minor 相同。 |
最新消息 8.x |
major |
在同一主版本中安裝最新版本。 | 最新消息 8.x |
latestMajor |
與 major 相同。 |
最新消息 8.x |
注意
在UseDotNet@2中, major 與 latestMajor 政策目前僅在同一主要版本中解決。 跨主版本解析尚未支援。
若 global.json 包含未識別 rollForward 的值,任務會記錄警告並回退至安裝 中 sdk.version指定的精確版本。
完整數值規格 rollForward 請參見 global.json 概述。
Examples
使用 global.json 安裝最新的功能頻段
以下 global.json 檔案指定 SDK 版本 8.0.302 ,設定 rollForward 為 latestFeature。 此任務會安裝最新的 8.0.x SDK。
{
"sdk": {
"version": "8.0.302",
"rollForward": "latestFeature"
}
}
steps:
- task: UseDotNet@2
displayName: 'Install .NET SDK from global.json'
inputs:
packageType: 'sdk'
useGlobalJson: true
使用 global.json 安裝最新修補程式,並附帶功能。
以下 global.json 檔案指定 SDK 版本 8.0.302 ,設定 rollForward 為 latestPatch。 該任務會在功能範圍內安裝最新的 SDK 版本 8.0.3xx 。
{
"sdk": {
"version": "8.0.302",
"rollForward": "latestPatch"
}
}
steps:
- task: UseDotNet@2
displayName: 'Install .NET SDK from global.json'
inputs:
packageType: 'sdk'
useGlobalJson: true
要求
| 要求 | 描述 |
|---|---|
| 管線類型 | YAML、傳統組建、傳統版本 |
| 執行於 | Agent、DeploymentGroup |
| 要求 | 沒有 |
| 能力 | 執行此任務滿足同一工作中後續任務的 以下需求 :DotNetCore |
| 命令限制 | 任何 |
| Settable 變數 | 任何 |
| 代理程式版本 | 2.144.0 或更新 |
| 工作類別 | 工具 |