From 1bb0e4b6cb766fa55f378b83c063695e72f0128d Mon Sep 17 00:00:00 2001 From: Max Charlamb Date: Thu, 30 Apr 2026 13:05:48 -0400 Subject: [PATCH] [cDAC] Use locally-built crossgen2 for dump test debuggees Import targetingpacks.targets and tests.readytorun.targets (via AfterMicrosoftNETSdkTargets) in debuggee Directory.Build.targets to ensure R2R publish uses the locally-built crossgen2 instead of the SDK's bundled version. Propagate RuntimeConfiguration, TargetArchitecture, TargetOS, and BuildArchitecture to child dotnet-publish so that crossgen2 and runtime pack paths resolve correctly in cross-build scenarios. Pass RuntimeConfiguration=Checked from the pipeline YAML so that BuildDebuggeesOnly finds crossgen2 under the Checked artifacts path. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../cdac/prepare-cdac-helix-steps.yml | 2 ++ .../Debuggees/Directory.Build.targets | 16 ++++++++++++++ .../cdac/tests/DumpTests/DumpTests.targets | 22 +++++++++++++++++-- 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/cdac/prepare-cdac-helix-steps.yml b/eng/pipelines/cdac/prepare-cdac-helix-steps.yml index ce8e01605987ae..c3b61807915e56 100644 --- a/eng/pipelines/cdac/prepare-cdac-helix-steps.yml +++ b/eng/pipelines/cdac/prepare-cdac-helix-steps.yml @@ -6,6 +6,7 @@ parameters: buildDebuggees: true skipDebuggeeCopy: false + runtimeConfiguration: 'Checked' steps: - ${{ if parameters.buildDebuggees }}: @@ -14,6 +15,7 @@ steps: /t:BuildDebuggeesOnly /p:Configuration=$(_BuildConfig) /p:TargetArchitecture=$(archType) + /p:RuntimeConfiguration=${{ parameters.runtimeConfiguration }} -bl:$(Build.SourcesDirectory)/artifacts/log/BuildDebuggees.binlog displayName: 'Build Debuggees' diff --git a/src/native/managed/cdac/tests/DumpTests/Debuggees/Directory.Build.targets b/src/native/managed/cdac/tests/DumpTests/Debuggees/Directory.Build.targets index 60cbea1938b738..8728cd5eac9853 100644 --- a/src/native/managed/cdac/tests/DumpTests/Debuggees/Directory.Build.targets +++ b/src/native/managed/cdac/tests/DumpTests/Debuggees/Directory.Build.targets @@ -1,6 +1,22 @@ + + + + + $(AfterMicrosoftNETSdkTargets);$(RepositoryEngineeringDir)testing\tests.readytorun.targets + + diff --git a/src/native/managed/cdac/tests/DumpTests/DumpTests.targets b/src/native/managed/cdac/tests/DumpTests/DumpTests.targets index 1485177bf16027..ae8228ffa7f7fd 100644 --- a/src/native/managed/cdac/tests/DumpTests/DumpTests.targets +++ b/src/native/managed/cdac/tests/DumpTests/DumpTests.targets @@ -39,6 +39,24 @@ $([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', 'Debuggees')) <_DotNetExe>$([MSBuild]::NormalizePath('$(RepoRoot)', '.dotnet', 'dotnet$(ExeSuffix)')) + + <_DebuggeeRuntimeConfig Condition="'$(_DebuggeeRuntimeConfig)' == ''">$(RuntimeConfiguration) + <_DebuggeeRuntimeConfig Condition="'$(_DebuggeeRuntimeConfig)' == ''">$(Configuration) + <_DebuggeeRuntimeConfig Condition="'$(_DebuggeeRuntimeConfig)' == ''">Debug + + + <_DebuggeePublishProps>/p:RuntimeConfiguration=$(_DebuggeeRuntimeConfig) + <_DebuggeePublishProps Condition="'$(TargetArchitecture)' != ''">$(_DebuggeePublishProps) /p:TargetArchitecture=$(TargetArchitecture) + <_DebuggeePublishProps Condition="'$(TargetOS)' != ''">$(_DebuggeePublishProps) /p:TargetOS=$(TargetOS) + <_DebuggeePublishProps Condition="'$(BuildArchitecture)' != ''">$(_DebuggeePublishProps) /p:BuildArchitecture=$(BuildArchitecture) @@ -167,7 +185,7 @@ <_PublishOutDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'DumpTests', '$(DebuggeeName)', '$(DebuggeeConfiguration)', '$(NetCoreAppCurrent)')) - + @@ -254,7 +272,7 @@ <_DebuggeeCsproj>$([MSBuild]::NormalizePath('$(_DebuggeeDir)', '$(DebuggeeName).csproj')) -