How to guess the contents of a setup

From time to time, you may need to guess the contents of a setup, maybe because some condition fails and doesn’t install, or maybe you want to make it work with a new version of Visual Studio or Windows.

The approach to guess the contents of a setup depends on the type of setup:

  • For example, .vsix extensions for Visual Studio are really .zip files, so you can rename them to .zip (or add that extension) and then you can simply unzip them:That way you can for example modify the contents of the extension.vsixmanifest file to make an extension compatible with a new version of Visual Studio if the owner has disappeared or doesn’t upgrade it.
  • For setups that are .exe files, normally when run they are uncompressed in the temp folder (C:\Users\<user>\AppData\Local\Temp), so you can clean the contents of that folder, run the setup.exe and then see what has been created in that folder. Imagine for example that you want to know the components of the Microsoft Build Tools 2015. How would you know if the docs don’t provide that information? After the first initial dialog, you would go to the temp folder:
    And you would open the LocalizableStrings.xml file, that contains the selectable items:
  • For setups that are .msi files, you can use the orca.exe tool, that is able to open those files to see their internal tables (msi files are like databases). To get the orca.exe tool installed is a bit convoluted, so here he go:
    • Download a Windows SDK, such as Windows SDK 8.1
    • Select the MSI Tools:
    • Go to folder where the SDK was installed, locate the Orca-x86_en-us.msi installer and run it:
    • Finally go to the folder where the orca.exe tool is installed:

    Now you can right-click any .msi file and select the “Edit with Orca” menu entry. Here you can see File table of the Orca-x86_en-us.msi file that we used to install the orca.exe tool:

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.