docs/workflow/testing/testing-workloads.md
Workloads based on packages in artifacts can be installed, and used for testing.
$(SdkVersionForWorkloadTesting)) in artifacts/bin/dotnet-workload.@(WorkloadIdForTesting) is installedruntime, are restored from nugetProvisionSdkForWorkloadTesting target and the workload is installed by InstallWorkloadUsingArtifacts target, using the InstallWorkloadFromArtifacts task @(WorkloadIdForTesting):Example for wasm:
<WorkloadIdForTesting Include="wasm-tools"
Name="microsoft.net.workload.mono.toolchain"
ManifestName="Microsoft.NET.Workload.Mono.ToolChain"
Version="$(PackageVersion)"
VersionBand="$(SdkBandVersion)" />
Currently, this is used only by src/tests/BuildWasmApps/Wasm.Build.Tests
The workload depends on three runtime packs - single threaded, multithreaded, and for perf tracing. If you have a local runtime build, for say multithreaded, then the workload install will fail because of missing runtime pack nugets for the other two variants.
For non-CI builds, we build the same runtime pack nuget but with the different expected names. So, essentially you get all the expected nugets, but they are all the same except for the name.
If you have all the nugets available, and want to avoid the above behavior then set WasmSkipMissingRuntimeBuild=true.
The cross compiler package is built manually from the InstallWorkloadUsingArtifacts target.