[DAEMON-9] windowslib v2

GitHub Issuen/a
TypeNew Feature
Resolution Date2019-06-05T03:00:18.000+0000
Affected Version/sn/a
Fix Version/sAppc Daemon 2.3.0
ReporterChris Barber
AssigneeChris Barber


windowslib needs to be updated to ES6 syntax and expose the new detect friendly interface, namely separating the search paths from the actual detection code.


  1. Ewan Harris 2017-08-23 Just dropping some resources for whatever lucky soul picks this up [vswhere](https://github.com/Microsoft/vswhere) - Detects visual studio versions, we already use the query APIs in windowslib today, Microsoft has committed to always shipping this with a VS2017 install and imo we should use it. [Device Portal](https://docs.microsoft.com/en-us/windows/uwp/debug-test-perf/device-portal) - Once tSurned on by a user on their Windows 10 device, can be accessed through the web browser to perform many actions such as installing apps, performance monitoring, gathering crash data. Backed by REST APIs that should be able to be used https://docs.microsoft.com/en-us/windows/uwp/debug-test-perf/device-portal-api-core [winappdeploycmd](https://docs.microsoft.com/en-us/windows/uwp/packaging/install-universal-windows-apps-with-the-winappdeploycmd-tool) - Used in windowslib today to install apps to devic over USB. Works over USB or network. For devices over a network it must be paired by the user.
  2. Ewan Harris 2017-12-01 Started drafting some thoughts here https://gist.github.com/ewanharris/6d9cea74b5ec55c837564df599ee6cb4 Started to set up the v2 branch and scaffold out the project etc.
  3. Chris Barber 2017-12-07 Reference: Installing the Windows SDK: https://gist.github.com/ewanharris/12968263f2a49d523d146fed09ba8c2d
  4. Ewan Harris 2018-02-14 Seeing as we're punting this for now here's my what's done so far windowslib (https://github.com/ewanharris/windowslib/tree/v2) * Detecting devices (uses winappdeploycmd) * Detecting visualstudio (uses vswhere) * Detecting vswhere * Detecting SDKs (8.0 and up), and SDK subcomponents like revisions/extensions * Tests for majority of the above windows-plugin (https://github.com/ewanharris/appcd-plugin-windows/tree/windowslib_v2) * Started to wire up windowslib 2 * VS detection and watching is in, tested across a couple of machines and seems to be handling ok, is very manual watching * Device detection is in, as it uses winappdeploycmd this is still using polling like, I don't like it but without some reverse engineering and c++ code I think it's the best we're gonna get * SDK detection and watching is in, tested across a couple of machines and seems happy. Does a dumb filter atm to remove 8.0, and 8.1, is build on regkeys and detect engine (yay!)

JSON Source