This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: Change Basic MSI
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
![](/skins/images/D60DF682EA37BF37032955CE10F3F0BB/responsive_peak/images/icon_anonymous_message.png)
Not applicable
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 17, 2009
10:15 AM
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
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
(2) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 17, 2009
07:56 PM
Perhaps see if creating a transform will do what you want?
![](/skins/images/D60DF682EA37BF37032955CE10F3F0BB/responsive_peak/images/icon_anonymous_message.png)
Not applicable
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 21, 2009
11:36 AM
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.
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
"RobertDickau" wrote:I have to find out first what a transform is :confused: . I never used it yet.
Perhaps see if creating a transform will do what you want?
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
![](/skins/images/D60DF682EA37BF37032955CE10F3F0BB/responsive_peak/images/icon_anonymous_message.png)