MSI Explorer

Most of us are quite familiar in creating MSI or Setup for our applications. By using a MSI, we can make sure all dependencies for running the application will be placed properly. MSI is the best option available on Windows OS for packaging and distributing our application. For .NET developers, Visual Studio presents lot of features in creating setup and deployment projects for our application. But, there are no built-in tools in Visual Studio to look into the MSI contents. And that too, to make a small change in MSI, it requires rebuilding the entire Setup Project. So, I think it's better to design an application that will analyze the MSI and give the details of it along with capability of updating it without rebuilding.

Features present in this application:

  • It allows us to look into the contents of the MSI.
  • It allows us to export the contents of the MSI.
  • It allows us to update commonly changing properties without rebuilding it.
  • Easy to use UI.
  • Now, Updating an MSI is quite simple.

Outline of the MSI Database:

 In order to access MSI database in .NET, we will follow below steps:

  • Create an instance of Installer, Database, View and Record.
  • Open the database using Installer's OpenDatabase method.
  • Prepare a Select query which is having syntax similar to SQL.
  • Pass that query to OpenView method of the Database object.
  • Execute the query by calling Execute method of the View object.
  • Fetch the records by using Fetch method of the View object.
  • If we want to update, delete, insert data into the MSI tables, we can follow the same steps by passing the update, insert SQL syntax query instead of Select query.
  • MSI database won't support all operators of SQL.

Use Browse option and click on Analyze for analyzing the selected MSI in the tool. Output will be like this, when we open MSI:

By using this application, we can easily view and update the MSI without extra effort.