Skip to content

GitHub Actions workflow cannot build arm32 after updating Windows SDK min version #1452

@dmachaj

Description

@dmachaj

Version

No response

Summary

Here's a CI build where it is failing: https://github.com/microsoft/cppwinrt/actions/runs/11865784595/job/33073424298

It seems that I broke it earlier today when I upgraded the SDK version to something newer: #1451. I'm not sure why that built just fine. It should have broken the same way.

D:\a\cppwinrt\cppwinrt>call msbuild /m /p:Configuration=Release,Platform=arm,CppWinRTBuildVersion=3.0.0.0 cppwinrt.sln /t:fast_fwd 
MSBuild version 17.12.6+db5f6012c for .NET Framework
Build started 11/16/2024 2:49:51 AM.

     1>Project "D:\a\cppwinrt\cppwinrt\cppwinrt.sln" on node 1 (fast_fwd target(s)).
     1>ValidateSolutionConfiguration:
         Building solution configuration "Release|arm".
     1>Project "D:\a\cppwinrt\cppwinrt\cppwinrt.sln" (1) is building "D:\a\cppwinrt\cppwinrt\fast_fwd\fast_fwd.vcxproj" (2) on node 1 (default targets).
     2>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.Cpp.WindowsSDK.targets(49,5): error MSB8037: The Windows SDK version 10.0.26100.0 for Desktop C++ ARM Apps was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution".  [D:\a\cppwinrt\cppwinrt\fast_fwd\fast_fwd.vcxproj]
     2>Done Building Project "D:\a\cppwinrt\cppwinrt\fast_fwd\fast_fwd.vcxproj" (default targets) -- FAILED.
     1>Done Building Project "D:\a\cppwinrt\cppwinrt\cppwinrt.sln" (fast_fwd target(s)) -- FAILED.

The build then exits with a failure at the end because this file is not found:

D:\a\cppwinrt\cppwinrt>nuget pack nuget\Microsoft.Windows.CppWinRT.nuspec -Properties target_version=3.0.0.0;cppwinrt_exe=D:\a\cppwinrt\cppwinrt\_build\x86\Release\cppwinrt.exe;cppwinrt_fast_fwd_x86=D:\a\cppwinrt\cppwinrt\_build\x86\Release\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_x64=D:\a\cppwinrt\cppwinrt\_build\x64\Release\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_arm=D:\a\cppwinrt\cppwinrt\_build\arm\Release\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_arm64=D:\a\cppwinrt\cppwinrt\_build\arm64\Release\cppwinrt_fast_forwarder.lib  
Attempting to build package from 'Microsoft.Windows.CppWinRT.nuspec'.
Could not find a part of the path 'D:\a\cppwinrt\cppwinrt\_build\arm\Release'.
Error: Output nuget package not found!
Error: Process completed with exit code 1.

The first question is whether there is any reason to maintain a native arm32 build of cppwinrt. Windows does not support arm32 at all on Win11 24H2. Previous Win11 versions only supported arm32 as WOW (not as a native architecture).

If we are ok with removing arm32 support then that is the easiest and most direct fix. Otherwise I either need to adjust the SDK version or I need to generate a zero-byte stub file just to make the .nuspec happy. I would prefer simply removing native arm32 support.

Reproducible example

Expected behavior

No response

Actual behavior

No response

Additional comments

No response

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions