Visual Studio 2017 seems to have changed a lot of things in the extensibility area https://docs.microsoft.com/en-us/visualstudio/extensibility/breaking-changes-2017
The previous recommendations regarding installing a VSIX from an MSI now seem obsolete (Deploying VSIX using MSI installer), but there seems to no information about how to do it now.
The VS2017 FAQ implies the VSIX installer can (should?) be kicked off manually, is this the recommender approach now?
vsixinstaller.exe /q /appidinstallpath:"c:\program files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.exe" /appidname:"Visual Studio" /logFile: /skuName:Enterprise /skuVersion:15.0.25810.0 "KendoUI.Mvc.VSPackage.vsix"
It also requires that you know the path to vsixinstaller.exe. Where does this come from? (Update it seems the MS tool vsixbootstrapper will find vsixinstaller.exe and pass through your arguments to it, so no need to locate it directly).
Also you need to know all the versions of visual studio installed, which looks more complicated than it should be Programmatically finding the VS2017 installation directory.
Am I missing something or is this just really complicated now?
After some research I think currently we have these options:
<ExePackage>
you will have to think about a new strategy for uninstallment.I haven't looked deeper into option 4. For us option 3 was suficcient. VSIXInstaller provides some useful new command line switches, like /p /sp /f etc. which kind of allow one to perform the install in "quite" mode. This, of course, will fail if a required prerequisite is absent or if a blocking process cannot be shut down. Or when applied to an older VSIX installer (important for multi-instance installers!).
Note further, that
VSIXInstaller.exe
for VS2017 blocks also waiting for MSBuild to shut down. Our build scripts were testing the newly created installer ... which no longer works, sadly.It's just really complicated now. Installing an extension can trigger VS Setup to install required workloads, which fails when both are happening via MSI. There's been discussion about how to make it work for WiX and the conclusion is that it's not possible to make it work safely without a change to how VSIXInstaller.exe works: http://lists.wixtoolset.org/pipermail/wix-devs-wixtoolset.org/2017-February/thread.html.