Skip to content

Move from sdk-provided cppwinrt-1.x to cppwinrt-2.x nuget package - #2246

Merged
Enrico Giordani (enricogior) merged 1 commit into
microsoft:masterfrom
riverar:cppwinrt2
Apr 29, 2020
Merged

Enrico Giordani (enricogior) merged 1 commit into
microsoft:masterfrom
riverar:cppwinrt2

Conversation

@riverar

@riverar Rafael Rivera (riverar) commented Apr 20, 2020 •

Copy link
Copy Markdown
Contributor

Summary of the Pull Request

Moves PowerToys off SDK-provided cppwinrt (1.x) to nuget-provided cppwinrt (2.x). (This also resolves 17134 and 19041 SDK compilation issues.)

References

#1907 - PowerToys doesn't compile with SDKs higher than 10.0.18362.0

PR Checklist

Detailed Description of the Pull Request / Additional comments

  • src/Directory.Build.props introduced to set important global properties (e.g. for cppwinrt compilation success)
  • Precompiled headers/compilation units all renamed from stdafx to pch, required for cppwinrt/sdk symbiosis
  • Microsoft.Windows.CppWinRT nuget added to relevant projects. This will rewire project internals at runtime to execute the bundled cppwinrt.exe, generate projection headers, and more. This means identical looking projection headers will be generated for every project. This duplicitous work appears to be per cppwinrt design.
  • Standardized cpp language standard solution-wide
  • Due to older platform SDK targets, Conformance Mode has been disabled solution-wide. If/when a conforming Windows SDK ships, we can revisit this.

Validation Steps Performed

Basic smoke test, app launches and modules appear to work.

@enricogior

Copy link
Copy Markdown
Contributor

Rafael Rivera (@riverar)
thanks!
There is a small conflict, can you resolve it? In case we can do it when merging.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you so much for the contribution! I've tested it locally and it works.

<ProjectGuid>{D29DDD63-E2CF-4657-9FD5-2AEDE4257E5D}</ProjectGuid>
<RootNamespace>actionrunner</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the reason to set 10.0.17134.0 in stead of 10.0.18362.0?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aligns with the README: Microsoft PowerToys requires Windows 10 1803 (build 17134) or later. But we can change to whatever you want the min target to be.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we have been testing and building the release with 10.0.18362.0 let's set it as the default.

@riverar Rafael Rivera (riverar) Apr 21, 2020 •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm okay with bumping up to 10.0.17763.0 (EOL November 10, 2020), to re-align with the consumer Windows 10 support lifecycle, but anything beyond will cause misalignment with product lifecycles.

Changes if left alone:

  • None

Changes if bumped to 10.0.17763.0:

  • Minimum supported OS will need to change in README
  • This will signal that PowerToys does not support Windows 10 Education or Enterprise lifecycles (17134 is still supported until late Q4)

Changes needed if bumped to 10.0.18362.0:

  • Minimum supported OS will need to change in README
  • This will signal that PowerToys does not follow any Windows 10 product lifecycle.

Official builds should not be using the 10.0.18362.0 SDK.

I'm not familiar with the team hierarchy here yet (apologies) so tagging Clint Rutkas (@crutkas) for double-check.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me re-check what are we using in the piepline to build the release.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Our build environment is 1809 with VS 16.4.3.
Clint Rutkas (@crutkas) can you confirm is it OK to set it as minimum version supported?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm fine moving to RS5 as min version looking at telem.

@riverar Rafael Rivera (riverar) Apr 21, 2020 •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clint Rutkas (@crutkas) So, to confirm, you do not want to support Windows 10 Education or Enterprise, right? So PowerToys moving forward will only support consumer lifecycle.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I misunderstood, yes, we should support those. I thought RS5 flip was May timeframe ,not Nov. We currently support Rs4+ so lets keep that until nov.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I checked out tests and all of them worked as expected. Thanks!

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested and it works as expected. Thank you for contribution

@riverar
Rafael Rivera (riverar) force-pushed the cppwinrt2 branch 2 times, most recently from c52c43d to 8ccf9cf Compare April 20, 2020 18:34
@riverar Rafael Rivera (riverar) changed the title WIP: Move from sdk-provided cppwinrt-1.x to cppwinrt-2.x nuget package Move from sdk-provided cppwinrt-1.x to cppwinrt-2.x nuget package Apr 20, 2020
@enricogior

Copy link
Copy Markdown
Contributor

Clint Rutkas (@crutkas) do you want to merge this for 0.17 or do we merge it right after it so we have more time for testing?

@enricogior
Enrico Giordani (enricogior) merged commit d16ebba into microsoft:master Apr 29, 2020
@riverar
Rafael Rivera (riverar) deleted the cppwinrt2 branch July 12, 2024 05:28
@niels9001 Niels Laute (niels9001) added Product-FancyZones Refers to the FancyZones PowerToy Product-File Explorer Power Toys that touch explorer like Preview Pane Product-Image Resizer Things regarding image resizing module Product-PowerRename Refers to the PowerRename PowerToy Product-Shortcut Guide Refers to the Shortcut Guide PowerToy labels Jun 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Product-FancyZones Refers to the FancyZones PowerToy Product-File Explorer Power Toys that touch explorer like Preview Pane Product-Image Resizer Things regarding image resizing module Product-PowerRename Refers to the PowerRename PowerToy Product-Shortcut Guide Refers to the Shortcut Guide PowerToy

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants