IMO, the correct option here is to compile against an older version of the build chain. This is the solution offered by Microsoft, and something you would do on Linux for glibc compatibility as well.
The other option would be to compile without MSVC, using mingw, wine headers, etc.