dotnet / dotnet/sdk

catch-22 regarding running `dotnet restore` vs. `dotnet workload restore` first

Open
#45,447 5 comments 0 reactions 0 assignees View on GitHub
Area-Workloads
Dominant language
C#
Stars
3.2k
Forks
1.3k
PR merge metrics
PR metrics pending

Description

### Describe the bug

My CI build is broken on some agents because there seems to be a catch-22 regarding whether to run `dotnet restore` or `dotnet workload restore` first.

If I run `dotnet restore` first, it errors out saying "error NETSDK1147: To install these workloads, run the following command: dotnet workload restore".

If I run `dotnet workload restore` first, it errors out saying "The SDK 'Microsoft.Build.Traversal' specified could not be found."

Yes, I have traversal projects. And in fact the root of my restore operation is a `dirs.proj`.

### To Reproduce

I suspect all you need is a dirs.proj that points to a project that requires android, iOS or anything else requiring a workload.
Then, on a computer that does not already have a nuget cache with `Microsoft.Build.Traversal` or the required workload installed, try restoring.

### Further technical details

SDK Version: 9.0.100

This happens on mac, windows and linux agents. These are custom agents, BTW, so they don't have a bunch of workloads pre-installed as the Azure Pipelines Hosted agents may have.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.