appcelerator-archive / windowslib

This is a library of utilities for dealing programmatically with Windows Phone applications, used namely for tools like Titanium.
http://www.appcelerator.com
Other
4 stars 10 forks source link

[TIMOB-24189] Support Visual Studio 2017 #65

Closed infosia closed 7 years ago

infosia commented 7 years ago

TIMOB-24189

As of Visual Studio 2017, you can install multiple editions of Visual Studio (Community, Professional etc) and it requires new way to detect its instances. (See also this and this ).

So the problem for windowslib is that the result from windowslib.visualstudio.detect actually did not quite consider this situation and it uses MSBuild version number as a key to select Visual Studio such as 12.0 and 14.0. You might think we could use 15.0 for VS 2017, but this does not work because we could have multiple installation of MSBuild that have same version number 15.0. So for now we should have a way to choose one instance from multiple installation of Visual Studio 2017 by its name such as Visual Studio Community 2017 RC and Visual Studio Enterprise 2017 RC etc.

So for now output from windowslib.visualstudio.detect is going to look like this:

"visualstudio": {
        "Visual Studio Community 2017 RC": {
                "version": "Visual Studio Community 2017 RC",
                "supported": "true",
                "msbuildVersion": "15.0.26206.0",
                "path": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community",
                "wpsdk": null,
                "registryKey": null,
                "clrVersion": null,
                "selected": true,
                "vcvarsall": "C:\\PROGRA~2\\MIB055~1\\2017\\COMMUN~1\\VC\\AUXILI~1\\Build\\VCVARS~1.BAT"
        },
        "Visual Studio Professional 2017 RC": {
                "version": "Visual Studio Professional 2017 RC",
                "supported": "true",
                "msbuildVersion": "15.0.26206.0",
                "path": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Professional",
                "wpsdk": null,
                "registryKey": null,
                "clrVersion": null,
                "selected": false,
                "vcvarsall": "C:\\PROGRA~2\\MIB055~1\\2017\\PRO~1\\VC\\AUXILI~1\\Build\\VCVARS~1.BAT"
        },
        "14.0": {
                "version": "14.0",
                "registryKey": "HKEY_CURRENT_USER\\Software\\Microsoft\\VisualStudio\\14.0_Config",
                "supported": true,
                "vcvarsall": "C:\\PROGRA~2\\MICROS~1.0\\VC\\VCVARS~1.BAT",
                "msbuildVersion": "14.0.25420.1",
                "wpsdk": null,
                "selected": false,
                "path": "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\",
                "clrVersion": "v4.0.30319"
        },
        "12.0": {
                "version": "12.0",
                "registryKey": "HKEY_CURRENT_USER\\Software\\Microsoft\\VisualStudio\\12.0_Config",
                "supported": true,
                "vcvarsall": "C:\\PROGRA~2\\MICROS~1.0\\VC\\VCVARS~1.BAT",
                "msbuildVersion": "12.0.25420.1",
                "wpsdk": null,
                "selected": false,
                "path": "C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\",
                "clrVersion": "v4.0.30319"
        }
},
garymathews commented 7 years ago

CR: PASS FT: PASS