Skip to content

Build Error on Windows 11 arm64 #171

@dlevy-msft-sql

Description

@dlevy-msft-sql

Describe the bug

I'm having some issues, likely related to me having a windows arm64 machine.

When I run python -m pytest -v it fails with:

================================================================================================================ FAILURES ================================================================================================================= 
____________________________________________________________________________________________ TestDependencyFiles.test_python_extension_exists _____________________________________________________________________________________________ 

self = <test_000_dependencies.TestDependencyFiles object at 0x000001AAE6781A90>

    def test_python_extension_exists(self):
        """Test that the Python extension module exists."""
        extension_path = dependency_tester.get_expected_python_extension()

>       assert extension_path.exists(), \
            f"Python extension module not found: {extension_path}"
E       AssertionError: Python extension module not found: C:\github\mssql-python\mssql_python\ddbc_bindings.cp313-arm64.pyd
E       assert False
E        +  where False = exists()
E        +    where exists = WindowsPath('C:/github/mssql-python/mssql_python/ddbc_bindings.cp313-arm64.pyd').exists

tests\test_000_dependencies.py:218: AssertionError
========================================================================================================= short test summary info ========================================================================================================= 
FAILED tests/test_000_dependencies.py::TestDependencyFiles::test_python_extension_exists - AssertionError: Python extension module not found: C:\github\mssql-python\mssql_python\ddbc_bindings.cp313-arm64.pyd
================================================================================================ 1 failed, 163 passed, 2 skipped in 28.88s ================================================================================================ 

When I run the build.bat with no flags it doesn't create the files that the assert is looking for.

If I run build.bat with the arm64 flag it blows up:

[DIAGNOSTIC] Running CMake configure with: cmake -A ARM64 -DARCHITECTURE=arm64 "C:\github\mssql-python\mssql_python\pybind"
-- Building for: Visual Studio 17 2022
-- Configuring incomplete, errors occurred!
[DIAGNOSTIC] CMake configure exit code: 1
[ERROR] CMake configuration failed


CMake Error at CMakeLists.txt:2 (project):
  Failed to run MSBuild command:

    C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/arm64/MSBuild.exe

  to get the value of VCTargetsPath:

    MSBuild version 17.14.14+a129329f1 for .NET Framework
    Build started 7/28/2025 1:42:57 PM.

    Project "C:\github\mssql-python\mssql_python\pybind\build\arm64\py313\CMakeFiles\3.31.6-msvc6\VCTargetsPath.vcxproj" on node 1 (default targets).
    C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\arm64\Microsoft.Common.CurrentVersion.targets(843,5): error : The BaseOutputPath/OutputPath property is not set for project 'VCTargetsPath.vcxproj'.  Please check to make sure that you have specified a valid combination of Configuration and Platform for this project.  Configuration='Debug'  Platform='ARM64'. You may be seeing this message because you are trying to build a project without a solution file, and have specified a non-default Configuration or Platform that doesn't exist for this project. [C:\github\mssql-python\mssql_python\pybind\build\arm64\py313\CMakeFiles\3.31.6-msvc6\VCTargetsPath.vcxproj]
    Done Building Project "C:\github\mssql-python\mssql_python\pybind\build\arm64\py313\CMakeFiles\3.31.6-msvc6\VCTargetsPath.vcxproj" (default targets) -- FAILED.

    Build FAILED.

    "C:\github\mssql-python\mssql_python\pybind\build\arm64\py313\CMakeFiles\3.31.6-msvc6\VCTargetsPath.vcxproj" (default target) (1) ->
    (_CheckForInvalidConfigurationAndPlatform target) ->
      C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\arm64\Microsoft.Common.CurrentVersion.targets(843,5): error : The BaseOutputPath/OutputPath property is not set for project 'VCTargetsPath.vcxproj'.  Please check to make sure that you have specified a valid combination of Configuration and Platform for this project.  Configuration='Debug'  Platform='ARM64'. You may be seeing this message because you are trying to build a project without a solution file, and have specified a non-default Configuration or Platform that doesn't exist for this project. [C:\github\mssql-python\mssql_python\pybind\build\arm64\py313\CMakeFiles\3.31.6-msvc6\VCTargetsPath.vcxproj]

        0 Warning(s)
        1 Error(s)

    Time Elapsed 00:00:00.59


  Exit code: 1

To reproduce

Include a complete code listing (or project/solution) that we can run to reproduce the issue.

  1. Run build.bat without any arguments then run python -m pytest -v to see the first failure.
  2. Run build.bat arm64 then run python -m pytest -v to see the second failure.

Expected behavior

A clear and concise description of what you expected to happen.

I expect pytest to run successfully.

Further technical details

Python version: 3.13.5
SQL Server version: SQL Server 2022
Operating system: Windows 11 / arm64

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

Labels

help wantedExtra attention is neededtriage doneIssues that are triaged by dev team and are in investigation.

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions