Showing results for 
Show  only  | Search instead for 
Did you mean: 
Level 7

Passing suite feature data to a package

I'm having a problem with passing data to the primary MSI packages of my suite installation. I'll get the feature selections related to those packages passed just fine with ADDLOCAL=[ISParcelFeatureInstall], but the problem is that I'd also need to pass data regarding a different suite feature's action state so that the MSI packages can launch PowerShell custom actions if needed. Alternatively it would help if there's a way to run PowerShell custom actions in the suite installer. At least the UI doesn't provide any clues for doing that, but it seems like all suite features are not exposed to the UI (like constructing the feature hierarchy, which had to be done by modifying the XML).

So here's my scenario, the suite consists of the following packages:
-32-bit MSI (primary)
-64-bit MSI (primary)
-LocalDB (optional dependency)

I'd need to way to tell the MSI packages whether LocalDB is getting installed. I tried to pass the feature-related pseudo properties (FEATURE[name].actionState) to the MSI command line, but that didn't resolve to the actual value during runtime. I just get LOCALDB=FEATURE.actionState in the log as the actual command line, and on that same command line [ISParcelFeatureInstall] resolves to the correct values just fine. Is my syntax wrong or is it so that the pseudo properties cannot be used here (like the documentation suggests). Is there a way to get this to work in some way?

EDIT: It's actually an Advanced UI/Suite package I'm developing, so features available only in the Premier edition are OK too
Labels (1)
0 Kudos
3 Replies
Level 5

Hello there,
The best way to assign suite features to msi features is described in our beloved installTalk blog:
It works just fine for integrating suite with Basic MSI and InstallScript projects.
The best way to extend advanced ui suite is through custom action dlls written ie. in c++. You can find how to do that here:
I also want to warn you, that when you are passing properties to msi, it should be all in big capital letters ie. DATABASE_TYPE=[SUITE_SELECTED_TYPE]

Hope it helps,
Best regards,
0 Kudos
Level 7

Hi Marek

Thanks for the info, but unfortunately that doesn't help with my case. I already have the suite features mapped to MSI features for the given package, but the problem is that I would have to pass information about the installation state of another suite package to the MSI packages. What comes to using DLL extensions, I can't seem to find a way to assign conditions for the actions in the suite installer and having a separate button the user has to click to perform the necessary configuration is rather ugly. I'd need a way to tell my suite project that an action needs to be launched during the installation only if a certain suite feature has been selected for installation. I could do the configuration also in the MSI packages, but I'd need a way to tell the MSI package that this suite feature mapped to a different package is being installed.
0 Kudos
Level 7

Is there a property that contains information about all suite features selected to be installed similarly as [ISParcelFeatureInstall] contains the features that are selected for one package? At least [ISFeatureInstall] resolves to empty string when passed to MSI command line while [ISParcelFeatureInstall] returns the correct feature set on the same command line.
0 Kudos