Skip to content

vs2017 action results in solution that targets Windows SDK 8.1 #935

Closed
@JohannesMP

Description

On windows 10 with a c++ project, using premake5 vs2017 will result in a solution that targets the Windows SDK 8.1, not the new 10.0.* SDK Versions.

Example error message when trying to build a bog standard 'Hello World' C++ solution created with Premake5 (compiled from source on commit 66362c0 ):

1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Platforms\Win32\PlatformToolsets\v141\Toolset.targets(34,5): error MSB8036: The Windows SDK version 8.1 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".

This will always happen on a machine that only has VS2017 installed, without the 8.1 SDK, which is the default state. On such a machine, the 'Retarget Projects' right click option shows the following:
.

While this is a quickfix, I feel that the default behavior for the vs2017 action should be to use the 10.0 SDK that is guaranteed to be installed, not the 8.1 SDK that will become less and less used as more devs upgrade to using only 2017.

We should not assume that someone running the vs2017 action has VS2015 or the older SDK installed.


Edit: I just saw #450 and the addition of the systemversion, so at least I have a nicer workaround now with systemversion("10.0.15063.0"), but I still feel that it would be a more reasonable default than 8.1.

Metadata

Assignees

No one assigned

    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