[wix-devs] Selection of compatible VS instances
rob at firegiant.com
Mon Feb 13 00:45:49 PST 2017
Let me summarize to try and clear the issues and others can correct my understanding where it is wrong:
1. Detection of VS2017 - There is a new COM API available to detect VS2017. It was lamented that a custom action server needs to be spun up just to detect the existance of VS2017 but I expect that ship has sailed. Beyond that, I think progress should be underway on providing updated detection Properties for VS2017 like there are for existing VS versions.
2. VsixPackage element support for VS2017 - There was concern about still being able to install VS2010 VSIX's using the VS2017 VsixInstaller.exe. I believe Heath has pointed out that VsixInstaller.exe is a singleton and thus is backwards compatible. Therefore, there is no need to create a "Vsix3Package" element (or some similar name). That means the VsixPackage element continues to behave as it did before: it searches for latest VsixInstaller.exe and uses that to install any and all VSIX packages. But see #3.
3. Installation using VsixPackage element into VS2017 - here Heath has acknowleged issues that I believe Bob and Sean were trying to point out about the VS2017 VsixInstaller.exe's behavior w.r.t installing dependent workloads. Installing additional workloads this way could create nested MSI transactions (which, as we all know, doesn't work out). So there is a lot of complexity here and Heath has raised the issue with the VsixInstaller.exe team. But we're not likely to get a solution in the next few weeks. That means VsixPackage element will not support installing into VS2017 until some point in the future.
4. Installation using VsixBootstrapper - to avoid the nested MSI transaction problems of #3, you could move your VSIX install to the Bundle. Heath pointed to an executable that finds and launches VsixInstaller.exe. When the Chain element is opened up for extensiblity (v4, for sure) work can be done to make this option of installing VSIXs via the Bundle friendly. Basically the VsixPackage element as a child of Chain.
(#1) hopefully we'll see the detection part of the WIP (VS2017_* Properties) implemented shortly since it sounds like Heath is mostly done with that part.
(#3) Then we'll have to wait and see what VsixInstaller.exe team decides to do before we know what happens on the VsixPackage element.
(#4) Finally there is a new work item (that is called out in short paragraph of the WIP) about improving the Bundle experieence.
I think that's it. Heath is making progress on all the above by updating code in the WixVsExtension.
More information about the wix-devs