[wix-devs] Scheduling multiple CAs

Rob Mensching rob at firegiant.com
Sun Jan 15 08:24:02 PST 2017


Can you share where you've been getting these requests from?

The companies we've talked to looking for VS2017 support install project systems with SDKs and such like that. They want to be included in all instances of VS, much like the WIP proposed, because they are platform pieces. This aligned with our expectations: if you still needed a MSI to install your VS integration (aka: you had stuff VSIX3 didn't support) then you were probably a pretty serious system and acted more like a platform than "just an extension".

Scheduling from an immediate custom action definitely sounds like the way to solve the targeting an instance of VS but, at this time, this is a nice to have feature.

I've not been following the progress on the WIP closely. Is that design and/or work progressing well? Actually, disregard that question. Instead, let me say, if we're not making progress on the fundamental functionality of installing into VS2017 it would be great if that was where the focus remained.


-----Original Message-----
From: wix-devs [mailto:wix-devs-bounces at lists.wixtoolset.org] On Behalf Of Heath Stewart
Sent: Friday, January 13, 2017 9:54 PM
To: WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Subject: [wix-devs] Scheduling multiple CAs

I’ve been getting some requests for the ability for setup applications (e.g. BAs) to be able to give users the ability to select into which instances a VSIX is installed for VS2017 and newer. As I’ve explained to them, and MSI can’t really prompt. Even if we sent a custom message, we’d have to plumb it all the way through Burn to BAs. It wouldn’t be a general solution: of course, MSIs can’t prompt in general because they need to run silently.

But I’m considering an option where a BA could query up front and pass in a delimited list of instance IDs via public property, and an immediate CA could schedule multiple CAs. As I’ve been out of the guts of MSI for a while, can someone confirm (or otherwise correct me):

If the immediate CA between InstallInitialize and InstallFinalize sets “CustomActionData” then calls MsiDoAction on an unscheduled deferred CA, then I could conceivably schedule multiple invocations of VSIXInstaller.exe with multiple instance IDs, right?

Now the flip side is how to deal with any CA scheduled (in support of Dev14 or older, or anyone wanting to install extension into all instances or selected instances per my current WIP). One option would be to keep the registry detection and have this new immediate CA handle all versions at install time, since really the overall idea is the same: locate VSIXInstaller.exe – using the COM APIs and calling back on registry detection (still in the MSI as it is today). In fact, this could solve a request I’ve seen before: the solution right now only installs and extension into the latest version of VS, correct? (Of course the VSIX manifest can still dictate a lower bound.) An install-time solution could solve that as well.

Feedback would be appreciated.

Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10

____________________________________________________________________
WiX Toolset Developer Mailing List provided by FireGiant http://www.firegiant.com/


More information about the wix-devs mailing list