cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
BobVilla
Level 6

Custom Actions in a Suite Project

Building a suite project with msi files(file are created from a Basic MSI project), none of my Custom Actions are firing. Is there a way to ensure that when a exe or msi is ran that the Custom Actions in the original Basic MSI are fired?
Labels (1)
0 Kudos
8 Replies
ilirqt
Level 4

It's hard to help you without details like what conditions do you CA have.
You can set Install Exec Condition for your custom actions to 1 so they will always fire or use other conditions, you could even send properties to MSIs from suite so custom actions can evaluate if needed to fire or not.
0 Kudos
BobVilla
Level 6

Basically, my CAs are calling custom functions built into a DLL file. Is there a way to call DLL functions from a suite project?
0 Kudos
hidenori
Level 17

Have you checked out this blog post?
0 Kudos
BobVilla
Level 6

What I have is a custom DLL that holds my prereqs for each of my suite features. What I need is to run those functions when a user selects that feature and hits the install button.

Would I build this logic in the Action parameter of the Install button on the Installation Features Dialog?

I had thought that the EXE files that were built with a Basic projects would pick up the CAs and run them when the Suite install tries to install each feature. When I build my Basic project, export it as an single EXE, and run it, it fires all the CAs in the Basic project and installs just like it should. But, when I point the Suite project at the same EXEs, none of the CAs fire and the install give errors.

Why does the Suite project ignore all the CAs in the Basic project?

If the Suite project can't fire the CAs in the Basic project, then i will have to try to rebuild everything in the Suite project?

How can you set up logic for the feature tree to check prereqs for each feature?

Example:
Suite project has five features, each having a different set of prereqs. The prereqs are checked with a custom DLL that has a function set to check the prereqs of each feature. If, the user selects features one and three the corresponding prereq functions are called before each package is installed.

Would the condition statement be put in the Action parameter of the Install button?

Does anyone have an example of how to build condition statements for a Action that checks the status of another control?

I would much rather keep the prereqs checks inside of the Basic project EXE files instead of in the suite project. But it looks like to me that the suite project ignores all the CAs and custom dialogs from the Basic project EXE files.
0 Kudos
rguggisberg
Level 13

Bob,
Not sure if I can answer your question. But I can tell you that I have many CA's in Basic MSI projects and they all work as you expect that they should... either when I execute the individual .exe's or when executed from a Suite. You mentioned that you use the msi file in your Suite. I use the .exe files.
0 Kudos
BobVilla
Level 6

I have tried both ways... I have exported my Basic projects as MSIs and EXEs... maybe my problem is that I am not exporting them the right way. How do you create your EXE files from your Basic project(s)?
0 Kudos
rguggisberg
Level 13

Bob,
If I understand your question... you want to know what options I have in the Setup.exe tab under Release for my Basic MSI projects???? Please Understand that I am not trying to tell you how to do it or that the way I did it is the most correct.... just sharing with you what I did and that seems to work.
Setup Launcher - Yes
Generate Package Definition File - No
Required Execution Level - Administrator
Advertise If Prerequisites Are Elevated - No
Include MSI Engine - Yes
Cache MSI Locally - No
0 Kudos
BobVilla
Level 6

Well, you see I have been passed the IS portion of my project from another developer. The other developer was using 2009 to build our last release for our product. We just upgraded 2012. I imported the all of the old 2009 projects into 2012 and was using the Project Assistant to select "Single EXE" to export the Project to be used in a Suite project. We had multiple Basic project to install each of our features. I have been given the task of bringing these into one installer. I see now that the original Basic MSI project are not building the EXE files correctly. I thought that maybe it was the way I was building the EXEs through the Project Assistant was causing the EXE to fail... I think maybe it's the transition from 2009 to 2012.
0 Kudos