diff --git a/eng/Subsets.props b/eng/Subsets.props
index 898741f170e185..73efd1ddb9d1a6 100644
--- a/eng/Subsets.props
+++ b/eng/Subsets.props
@@ -752,10 +752,10 @@
-
+
diff --git a/eng/pipelines/performance/templates/perf-wasm-build-jobs.yml b/eng/pipelines/performance/templates/perf-wasm-build-jobs.yml
index aaf2a2375cfa77..5e70a42c991ad4 100644
--- a/eng/pipelines/performance/templates/perf-wasm-build-jobs.yml
+++ b/eng/pipelines/performance/templates/perf-wasm-build-jobs.yml
@@ -31,7 +31,7 @@ jobs:
platforms:
- browser_wasm
jobParameters:
- buildArgs: -s clr+libs+host+packs -c $(_BuildConfig) /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS)
+ buildArgs: -s clr+libs+host+packs -c $(_BuildConfig) /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) /p:BuildHostTools=true
nameSuffix: wasm_coreclr
isOfficialBuild: false
postBuildSteps:
@@ -41,4 +41,5 @@ jobs:
artifactName: BrowserWasmCoreCLR
sdkDirName: dotnet-none
includeRefPack: false
+ includeCrossgen2Pack: true
publishCoreClrRuntimePack: true
diff --git a/eng/pipelines/performance/templates/perf-wasm-prepare-artifacts-steps.yml b/eng/pipelines/performance/templates/perf-wasm-prepare-artifacts-steps.yml
index a6452608f1b349..c5a1e399123f4b 100644
--- a/eng/pipelines/performance/templates/perf-wasm-prepare-artifacts-steps.yml
+++ b/eng/pipelines/performance/templates/perf-wasm-prepare-artifacts-steps.yml
@@ -4,6 +4,7 @@ parameters:
runtimeFlavor: 'mono'
sdkDirName: 'dotnet-latest'
includeRefPack: true
+ includeCrossgen2Pack: false
# The Mono (default) build installs the wasm-tools workload, whose manifest now includes the
# CoreCLR browser-wasm runtime pack (Microsoft.NETCore.App.Runtime.browser-wasm). A Mono-only
# build doesn't produce that pack, so download it from the CoreCLR build job and stage it into
@@ -51,6 +52,15 @@ steps:
- script: cp -r $(Build.SourcesDirectory)/artifacts/bin/microsoft.netcore.app.ref $(Build.SourcesDirectory)/artifacts/staging
displayName: "Stage ref pack directory"
+ - ${{ if eq(parameters.includeCrossgen2Pack, true) }}:
+ - script: >-
+ find $(Build.SourcesDirectory)/artifacts/packages/${{ parameters.configForBuild }}/Shipping -maxdepth 1
+ -name 'Microsoft.NETCore.App.Crossgen2.*.nupkg' -not -name '*.symbols.nupkg'
+ -exec cp {} $(Build.SourcesDirectory)/artifacts/staging/built-nugets \; &&
+ test -n "$(find $(Build.SourcesDirectory)/artifacts/staging/built-nugets -maxdepth 1
+ -name 'Microsoft.NETCore.App.Crossgen2.*.nupkg' -not -name '*.symbols.nupkg' -print -quit)"
+ displayName: "Stage Crossgen2 pack"
+
# Publish the CoreCLR browser-wasm runtime pack nuget on its own so the Mono build job can stage
# it into its local feed for the wasm-tools workload install.
- ${{ if eq(parameters.publishCoreClrRuntimePack, true) }}: