Several friction points when building OpenSSH on Windows with current VS releases:
-
Start-OpenSSHBuild calls vswhere and takes the newest install it returns.
On machines that also have VS 2026 (v145 toolset) installed alongside
VS 2022 (v143), the downstream Select-String version checks miss, fall
through to the VS 2015 branch, and dereference a null $env:VS140COMNTOOLS.
-
vcpkg's CMake can pick a different toolset than the .vcxproj files
(which hard-code v143). When a newer VS is selected, builds fail with
MSB8040 (Spectre-mitigated libs missing for v145).
-
OpenSSH-build.ps1 -destination defaults to $env:WORKSPACE. Outside
CI that variable is unset, so running the script locally errors before
it starts.
-
README.txt lacks current Windows prerequisites: VS 2022 Desktop C++
workload, v143 Spectre-mitigated libs, Git, the one-time vcpkg
bootstrap/integrate step, and the need for elevated PowerShell.
All four are build-environment issues, independent of runtime behavior.
Several friction points when building OpenSSH on Windows with current VS releases:
Start-OpenSSHBuildcallsvswhereand takes the newest install it returns.On machines that also have VS 2026 (v145 toolset) installed alongside
VS 2022 (v143), the downstream
Select-Stringversion checks miss, fallthrough to the VS 2015 branch, and dereference a null
$env:VS140COMNTOOLS.vcpkg's CMake can pick a different toolset than the
.vcxprojfiles(which hard-code v143). When a newer VS is selected, builds fail with
MSB8040 (Spectre-mitigated libs missing for v145).
OpenSSH-build.ps1 -destinationdefaults to$env:WORKSPACE. OutsideCI that variable is unset, so running the script locally errors before
it starts.
README.txtlacks current Windows prerequisites: VS 2022 Desktop C++workload, v143 Spectre-mitigated libs, Git, the one-time vcpkg
bootstrap/integrate step, and the need for elevated PowerShell.
All four are build-environment issues, independent of runtime behavior.