DotNetCoreCLI@0 is retired: replace it with DotNetCoreCLI@2
The short answer
- Retirement date
- Removal date
- . Pipelines that still use it fail after removal.
- Replacement
DotNetCoreCLI@2- Kind of migration
- replacement with input changes
- Automatic rewrite
- Not yet. Automatic rewrite is planned for this kind of task (replacement with input changes). Today, trasloco modernize --check finds the step and you change it by hand.
- Recommended action
- Replace DotNetCoreCLI@0 with DotNetCoreCLI@2 and review the replacement inputs before updating the pipeline.
Official sources
- Official task retirement announcement
- Task definition: DotNetCoreCLI (task.json)
- Task definition: DotNetCoreCLIV2 (task.json)
Last verified:
Why does my pipeline show a retirement error for DotNetCoreCLI@0?
On , Azure Pipelines shows a retirement error for DotNetCoreCLI@0, but the run does not fail. On , pipelines that still use DotNetCoreCLI@0 fail.
Find it in your pipelines
With trasloco:
trasloco modernize --check
Install trasloco from the latest release.
With plain grep, nothing to install:
grep -rniwF 'DotNetCoreCLI@0' --include='*.yml' --include='*.yaml' .
How to migrate
Replace DotNetCoreCLI@0 with DotNetCoreCLI@2 and review the replacement inputs before updating the pipeline.
The task definition of the replacement is linked under official sources above.
DotNetCoreCLI@0 retirement FAQ
Is DotNetCoreCLI@0 deprecated?
Yes. DotNetCoreCLI@0 is retired on 2026-10-15. Azure Pipelines shows a retirement error, but the run does not fail until removal.
When does DotNetCoreCLI@0 stop working?
DotNetCoreCLI@0 is removed on 2027-03-15. Pipelines that still use it fail after removal.
What should I use instead of DotNetCoreCLI@0?
Replace DotNetCoreCLI@0 with DotNetCoreCLI@2.
Related retired tasks
- ArchiveFiles@1 — replacement with input changes
- AzureFunction@0 — replacement with input changes
- CacheBeta@0 — replacement with input changes
- cURLUploader@1 — replacement with input changes
- DotNetCoreCLI@1 — replacement with input changes
- DotNetCoreInstaller@0 — replacement with input changes
- XamarinAndroid@1 — retired platform or external tool: no drop-in replacement
- XamarinComponentRestore@0 — retired platform or external tool: no drop-in replacement
- XamariniOS@1 — retired platform or external tool: no drop-in replacement
- XamariniOS@2 — retired platform or external tool: no drop-in replacement