Add Windows ARM64 builds to NuGet packages for nightly and release pipelines #7847
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
The Z3 repository was already building Windows ARM64 binaries in both nightly and release pipelines, but these builds were not being included in the generated NuGet packages. This meant that developers using Windows ARM64 devices (like ARM-based Windows laptops) could not use the Z3 NuGet packages natively and had to rely on x64 emulation.
Solution
This PR adds Windows ARM64 support to the NuGet packaging process by making three targeted changes:
1. Enhanced Package Classification
Updated
scripts/mk_nuget_task.py
to recognize and properly classify ARM64 Windows packages:'arm64-win' : ('dll', 'win-arm64')
mapping to theos_info
dictionary2. Updated Pipeline Configurations
Modified both
scripts/nightly.yaml
andscripts/release.yml
to include the Windows ARM64 build artifacts in the NuGet packaging jobs:WindowsBuild-arm64
artifact in theNuGet64
packaging jobImpact
After these changes, Z3 NuGet packages will include:
runtimes/win-arm64/native/libz3.dll
- Native ARM64 Windows libraryThe changes are minimal and surgical, maintaining full backward compatibility while enabling native ARM64 Windows support. Existing x64 and x86 Windows users will see no changes in functionality.
Testing
Verified that:
('dll', 'win-arm64')
This resolves the gap in ARM64 Windows support and provides a complete native experience for Z3 users across all major ARM64 platforms.
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.