Skip to content

Older toolset with windows-2022 #92

@black-sliver

Description

@black-sliver

You may not know the answer, but I thought I'd still ask.

Previously, we were able to install older toolsets by running vs_BuildTools.exe with --add <component>.

With VS2022, it looks like toolset v141 should be available and the following succeeds on windows-2022

          Invoke-WebRequest -Uri "https://aka.ms/vs/17/release/vs_BuildTools.exe" -OutFile "vs_BuildTools.exe"
          Start-Process -FilePath ./vs_BuildTools.exe -ArgumentList "--add", "Microsoft.VisualStudio.Component.VC.v141.x86.x64", "--quiet", "--norestart", "--force", "--wait" -Wait -PassThru

Running this action like so

        uses: ilammy/msvc-dev-cmd@v1
        if: |
          matrix.sln == 'vs2017'
        with:
          arch: win32
          toolset: '14.1'

also does not return an error, however if I want to use nmake, that's not found in PATH.

Here is the failing action: https://github.com/black-sliver/lua-apclientpp/actions/runs/16338050529/job/46154064455
If you unfold the failing step, you see which env vars were actually set by msvc-dev-cmd to what.

Do you have any idea what I might be missing? My assumption right now is that the toolset v141 does not ship a full dev environment in vs2022 and so does not work from command line, but it could also be that msvc-dev-cmd does not correctly enter the environment?

The build has 2 steps, one is using nmake and one is using msbuild. Neither seems to be working with v141.

There are kind of 2 reason why I would want to use v141:

  • the .sln/proj is vs2017/v141 and I don't really want to "upgrade" it every other year (originally we were using vs2015/v140)
  • the thing I am building is a DLL that can be loaded by various EXEs and while toolset/libc is back compatible in 14.x, it is not forward compatible, so I would like to target a 14.x that is as old as possible to maximize compatibility

(Side note: The whole windows-2022 and vs2022 situation makes me want to move away from using any Microsoft tools: Various things were broken (and some still are) and all available Windows images ship the same VS now, so there is no downgrade path. I think at this point, my time would've been better spent trying to figure out if we can build OpenSSL with a different toolchain.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions