[Build] Fix DML Nuget Pipeline for Release by tianleiwu · Pull Request #27349 · microsoft/onnxruntime
tianleiwu
deleted the
tlwu/20260214/fix_dml_nuget_pipeline
branch
tianleiwu added a commit that referenced this pull request
Feb 18, 2026## Description
This pull request addresses the issue where the DirectML NuGet pipeline
has error like "##[error]A duplicate file name exists, or the file" in
Windows_CI_GPU_DML_Dev_arm64 step.
### Core Changes
1. **Automation Script**: Introduced bundle_dml_package.ps1 to
orchestrate the merging process:
- Extracts the base x64 `.nupkg`.
- Merges ARM64 binaries from a supplemental build artifact into the
`runtimes/win-arm64/native` directory.
- Repackages the resulting structure into a unified `.nupkg`.
2. **Pipeline Integration**: Updated dml-nuget-packaging.yml to include
a final `NuGet_Packaging_DML` stage. This stage is dependent on both the
x64 and ARM64 build stages.
3. **Extended Selection logic**: Updated select_dml_package.ps1 to allow
renaming artifacts (specifically for creating the supplemental ARM64
zip) and more robust package selection for development and release
builds.
4. **Validation Enhancements**: Included updates to
`validate_package.py` and `validate-package.yml` to support
multi-platform verification in future pipeline runs.
---
## Verification Results
The bundling logic was verified through the pipeline logs in the
`NuGet_Packaging_DML` stage.
### Execution Logs
- **Successful Extraction**: The script correctly extracted the
`win-dml-arm64.zip` and the base
`Microsoft.ML.OnnxRuntime.DirectML.1.24.1.nupkg`.
- **Injection Proof**:
- Created the `runtimes/win-arm64/native` directory inside the package
extraction folder.
- Copied `onnxruntime.dll`, `onnxruntime.lib`, and
`onnxruntime_providers_shared.dll` into the ARM64 runtime path.
- **Unified Package Creation**: 7-Zip successfully created the new
archive containing **34 files** (up from 31 in the original x64-only
package).
- **Size Increase**: The package size increased from **~6.6 MB** to
**~12.4 MB**, reflecting the inclusion of binaries for both
architectures.
> [!IMPORTANT]
> **Artifact Note**: When verifying the CI output, the unified
multi-arch package is located in the **`packages`** artifact produced by
the `NuGet_Packaging_DML` stage. Intermediate artifacts like
`drop-nuget-dml` still contain the single-architecture (x64) version.
tianleiwu added a commit that referenced this pull request
Feb 18, 2026This cherry-picks the following commits for the release: - #27350 [Build] Fix python packaging pipeline - #27349 [Build] Fix DML Nuget Pipeline for Release - #27334 [DNNL] Fix DNNL build - #27374 Enable Robust Symlink Support for External Data (HF Cache Support) --------- Co-authored-by: Hariharan Seshadri <shariharan91@gmail.com>
This was referenced
Feb 23, 2026This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters