TaylorJS
Posts: 2
Joined: Sun Jan 05, 2025 1:38 am

Programmatically Create New MSI Database Tables via COM Automation / CLI – Enterprise vs. Architect

Hello everyone,

I’m currently working on migrating a complex setup project from WiX to Advanced Installer. One of my main goals is to programmatically create new MSI tables and populate them with specific properties (rows/columns) via either:

Advanced Installer’s COM Automation interface (PowerShell)
Command-Line (CLI)

I am working on a PowerShell script that I'll need to integrate into a build pipeline for each new installer release, so a fully automated approach is critical.

I’ve looked through the CLI and COM interface documentation but haven’t found explicit examples on creating brand-new MSI tables or modifying existing ones with COM or CLI. Has anyone successfully added new tables (and data within them) to the MSI database using Advanced Installer’s automation features?

We currently have the Enterprise edition, but I’m wondering if the Architect edition is required to unlock this level of customization. Any insights, experiences, or relevant examples/documentation would be greatly appreciated!

Thank you in advance!

Taylor
Attachments
AdvancedInstallerInterfaces.txt
(114.98 KiB) Downloaded 206 times
Catalin
Posts: 7664
Joined: Wed Jun 13, 2018 7:49 am

Re: Programmatically Create New MSI Database Tables via COM Automation / CLI – Enterprise vs. Architect

Hello Taylor and welcome to our forums,

First of all, apologies for the quite delayed reply on this (we've been quite busy after the holidays).

Advanced Installer is a tool specifically designed so that you do not have to work with MSI tables - makes your life much easier.

That being said, creating new tables is not quite possible, at least not from scratch.

However, every change you do in the Advanced Installer GUI or through CLI/PowerShell COM, that change is reflected into Table Editor (e.g. tables are added/modified).

For instance, if you add a new file in the "Files and Folders" page, that file will be added to the "Files" table. Same with a custom action and everything else (e.g. registry entries, services, different options).

Could you perhaps give me some more details about your specific requirement so I can see whether we can find a solution together?

Best regards,
Catalin
Catalin Gheorghe - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
TaylorJS
Posts: 2
Joined: Sun Jan 05, 2025 1:38 am

Re: Programmatically Create New MSI Database Tables via COM Automation / CLI – Enterprise vs. Architect

Thank you for your response, Catalin.

Our installation technology migration project from WiX to Advanced Installer involves a complex installation system with a two-part architecture:

1. Our CI pipeline creates base MSIs using Advanced Installer CLI commands <- This part has been completed with AIP CLI from the Enterprise edition.
2. A custom Dashboard application (Dashboard.exe) handles configuration during installation

The specific requirements we have involve:

- Storing culture-specific collation settings for SQL Server installations
- Managing complex component dependencies across multiple MSIs
- Storing configuration data that our Dashboard reads during installation
- Custom modification of certain tables for language packs and localization

I noticed in our codebase that we currently use a RegistryHelper class to store many configuration values, but we'd prefer to have these embedded in the MSI for more reliable deployments, especially in air-gapped environments.

Could you clarify if Enterprise edition would support:
1. Reading/writing to existing MSI tables via COM Automation/CLI?
2. Creating property tables with custom key-value pairs?
3. Using transformations to modify MSI databases without direct table editing?

We're evaluating whether to continue with Enterprise or upgrade to Architect, so understanding these capabilities would be extremely helpful.

Thank you!
Catalin
Posts: 7664
Joined: Wed Jun 13, 2018 7:49 am

Re: Programmatically Create New MSI Database Tables via COM Automation / CLI – Enterprise vs. Architect

Hello Taylor,

Thank you for your followup on this and for providing the details.

Please allow me to answer your questions below:

1. All the modifications you do in Advanced Installer, be it through the UI or the command line is reflected in the MSI tables. So the answer here would be yes.

2. Sure thing, you can create your custom properties in the "Properties" view. These are added in the Property table behind the scenes.

3. Sure thing, using the Enterprise version you can create transforms that your users can use at install time.

Please let me know if you have any other questions and I will gladly assist.

Best regards,
Catalin
Catalin Gheorghe - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube

Return to “Common Problems”