cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Not applicable

Change Basic MSI

I try to find a solution for the following request:

I have a basic MSI package which should include a client specific file/data. This info is set up by a non-technical person, based on client's order, using a in-house little application.

So, the question is to change the already built MSI. I could find 2 possible ways:

1. Using some Windows SDK tools like msidb, extract, makecab to extract the CAB file from the MSI package, expand the CAB, replace the desired file, pack back the CAB and reinsert it in MSI.

2. Modify some of the MSI properties with a tool like ORCA, so a custom action in the installation applies the desired client data at the end of the install process.

I was not yet able to complete apply any of the above solutions, but I want to have a confirmation that are possible before digging further.

For the first solution I don't trust the packing/unpacking processes, so I would preffer the second.

The InstallShield MsiQuery tool does everything I need, but I have to implement the same behavior in a in-house application (in C# or Delphi), for example:
- Open an MSI package;
- Apply some queries (select, insert, update).
- Close.

What is the automation object? What are the calls?

Thanks,
Ioan
Labels (1)
0 Kudos
(2) Replies
RobertDickau
Flexera Alumni

Perhaps see if creating a transform will do what you want?
0 Kudos
Not applicable

I was able to implement the second solution in a Delphi project using a Delphi converted MSIQuery unit (found on this forum). Works fine, but we still debating what the solution should be.

"RobertDickau" wrote:
Perhaps see if creating a transform will do what you want?
I have to find out first what a transform is :confused: . I never used it yet.

On the other hand we may opt for a Standalone build solution as the last step for the delivery process.

I still wait for suggestions, advices, warnings for the 3 possible solutions enumerated (1, 2 above and Standalone).

Thanks,
Ioan
0 Kudos