UseDotNet@2 - dotnet v2 タスクを使用する

このタスクを使って、internetまたはローカルキャッシュから.NET Core SDKの特定バージョンを取得し、PATHに追加します。 このタスクを使って、その後のタスクで使われる.NET Coreのバージョンを変更してください。 このタスクでは、プロキシのサポートも提供されます。

構文

# 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。 許可される値: runtimesdk (SDK(実行時間を含む))。 既定値: sdk

.NETランタイムのみをインストールするかSDKをインストールするかを指定します。


useGlobalJson - グローバルjsonを使う
boolean。 随意。 packageType = sdkするときに使用します。 既定値: false

すべてのSDKを global.json ファイルからインストールします。 これらのファイルは system.DefaultWorkingDirectoryから検索されます。 作業ディレクトリ入力を設定することで、検索ルート パスを変更できます。

タスクはまた、global.jsonからsdk.rollForwardプロパティを読み込み、指定されたロールフォワードポリシーを満たす最新バージョンをインストールします。 例えば、global.json"rollForward": "latestFeature""version": "8.0.302"を指定している場合、タスクは正確なバージョンではなく最新の8.0.x SDKをインストールします。 sdk.rollForwardがなければ、タスクはsdk.versionで指定された正確なバージョンをインストールし、前の動作と一致します。 サポートされた rollForward 値の詳細については、 備考 セクションおよび global.json 概要をご覧ください。

UseDotNet@2.version入力で説明されている6.xおよび6.1.x形式(ワイルドカードとして.xを用いる)は、タスクのversion入力用であり、global.jsonsdk.versionパラメータではありません。

もし##[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を使っている場合は、global.jsonsdk.versionを確認してください。

global.jsonの詳細については、Use .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: 指定されたメジャーおよびマイナーバージョン、 3 および 1を含む最新のSDKまたはランタイムをインストールします。
  • 3.1.402指定されたSDKまたはランタイムバージョンをインストールする 3.1.402

SDKやランタイムインストールのバージョン値は releases.json ファイルにあります。 メジャー/マイナー・バージョンの releases.json へのリンクは releases-index ファイルにあります。 例えば、 バージョン3.1のreleases.json ファイルへのリンクです。


vsVersion - 互換Visual Studioバージョン
string

対応する.NET Core SDKインストールに対応する互換性のあるVisual Studioバージョンを指定します。 値は 16.6.4のような完全なバージョン番号でなければならず、メジャーバージョン、マイナーバージョン、パッチ番号が含まれます。

version文字列に使用されるSDKまたはランタイムインストールのバージョン値は、releases.jsonファイルに記載されています。 メジャー/マイナー・バージョンの releases.json へのリンクは releases-index ファイルにあります。 例えば、 バージョン3.1のreleases.json ファイルへのリンクです。


checkForExistingVersion - 既存の設置状況を確認してください
boolean。 既定値: false

ダウンロードを試みる前に指定されたバージョンが既にインストールされているかどうかを検出したい場合を選択してください。 installationPathがEmpty、つまりデフォルト値に設定されている時のみ使用してください。


includePreviewVersions - プレビュー版を含める
boolean。 随意。 useGlobalJson = false || packageType = runtimeするときに使用します。 既定値: false

trueに設定されている場合、タスクが最新のランタイムやSDKバージョンを検索する際、2.2.x3.1.xの検索などプレビューバージョンも含まれます。 この設定は、 3.0.100-preview3-010431のような正確なバージョンを指定する場合は無視されます。


installationPath - .NET Core インストールの経路
string。 既定値: $(Agent.ToolsDirectory)/dotnet

.NET Core 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 分) を超えることはできません。


タスク コントロールのオプション

すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「コントロール オプションと一般的なタスク プロパティを参照してください。

出力変数

何一つ。

備考

Use .NET Coreタスクは、inte rnetまたはツールキャッシュから.NET Coreの特定のバージョンを取得し、Azure Pipelinesエージェント(ホストまたはプライベート)のPATHに追加します。 このタスクを使って、DotNetCoreCLI@2など.NET Coreのバージョンを後続のタスクに変更できます。 ビルド定義の DotNetCoreCLI@2 の前にこのタスクを追加することで、アプリをビルド、テスト、公開する時点でバージョンが利用可能であることが保証されます。

ツール インストーラーのアプローチでは、エージェントの更新サイクルから切り離すこともできます。 もしお探しの.NET CoreバージョンがAzure Pipelinesエージェント(ホストまたはプライベート)に欠けている場合、このタスクを使って正しいバージョンをエージェントにインストールできます。

ロールフォワードサポート global.json

useGlobalJsontrueに設定されていると、タスクはglobal.jsonファイルからsdk.rollForwardプロパティを読み込み、指定されたロールフォワードポリシーを満たす最新のSDKバージョンをインストールします。 disablepatchfeatureminorポリシーについては、.NET CLIがSDKバージョンをローカルで解決する方法と一致します。majorlatestMajorは現在同じメジャーバージョン内で解決されています。

global.jsonsdk.rollForwardがなければ、タスクはsdk.versionで指定された正確なバージョンをインストールします。 これは以前の挙動と一致しています。

以下の表は、各 rollForward 値がどのようにバージョン解像度に影響を与えるかを示しています:

rollForwardの値 Behavior 例:バージョン 8.0.302 は次のように解決されます。
disable 指定された正確なバージョンをインストールします。 8.0.302
patch 同じ機能帯域内に最新のパッチをインストールします。 最新 >=8.0.300 <8.0.400
latestPatch patch と同じ。 最新 >=8.0.300 <8.0.400
feature 最新の機能バンドを同じメジャー・マイナーバージョン内にインストールします。 最新 8.0.x
latestFeature feature と同じ。 最新 8.0.x
minor 同じメジャーバージョン内に最新のマイナーバージョンをインストールします。 最新 8.x
latestMinor minor と同じ。 最新 8.x
major 同じメジャーバージョン内に最新バージョンをインストールします。 最新 8.x
latestMajor major と同じ。 最新 8.x

手記

UseDotNet@2では、 majorlatestMajor ポリシーは現在、同じメジャーバージョン内で解決されています。 クロスメジャーバージョンの解像度はまだサポートされていません。

global.jsonに認識されないrollForward値を含んでいる場合、タスクは警告を記録し、sdk.versionで指定された正確なバージョンをインストールするようにフォールバックします。

rollForward値の完全な仕様については、global.json 概要を参照してください。

Examples

global.json を使って最新の機能バンドをインストールしてください

以下の global.json ファイルはSDKのバージョン 8.0.302 を指定し、 rollForwardlatestFeatureに設定されています。 このタスクは最新の 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 を指定し、 rollForwardlatestPatchに設定されています。 このタスクは、 8.0.3xx 機能帯に最新のSDKバージョンをインストールします。

{
  "sdk": {
    "version": "8.0.302",
    "rollForward": "latestPatch"
  }
}
steps:
- task: UseDotNet@2
  displayName: 'Install .NET SDK from global.json'
  inputs:
    packageType: 'sdk'
    useGlobalJson: true

必要条件

要件 形容
パイプラインの種類 YAML、クラシック ビルド、クラシック リリース
実行日 エージェント、DeploymentGroup
の需要 何一つ
Capabilities このタスクを実行することで、同じジョブ内の後続タスクに対する 以下の要求 を満たします:DotNetCore
コマンドの制限 任意
設定可能な変数 任意
エージェントのバージョン 2.144.0 以上
タスク カテゴリ 道具

こちらも参照ください