There may be different scenarios here. The current thinking was to simply ask VS to install the VSIX, by calling IVsExtensionManager.Install.
This just takes a VS package ID, and as far as I know it is only usable for things that live in the main VS Extension Gallery. Here, VS deals with all the details of downloading and installing the VSIX.
But maybe we need a more pluggable model for installing various things as part of a NuGet package install:
- VSIX from the VS extension gallery (what I just described)
- VSIX based on an arbitrary URL that points to it
- MSI based on an arbitrary URL that points to it
- Same for exe's?
Maybe the last three are really all the same: it's a URL that point to a resource that we can call ShellExecute on, and that does whatever it does.
So those are all external scenarios. In addition, there are potential scenarios that deal with things that are embedded in the nupkg file.