Search code examples
windows-installersetup-projectvisual-studio-setup-projevisual-studio-setup

Visual Studio Setup Project how to flag non-essential files? MSI repair tool


I have a Visual Studio Setup Project that includes a number of icons with the installation. The issue I am running into regards these icons being deleted.

If I delete one of these icons through the file system, the MSI repair tool kicks in and prevents me from deleting this icon. (BAD)

I need to be able to install these icons as a default set of icons, but be able to delete them permanently after installation without the MSI repair tool kicking in.

What do I need to do in order to have a set of files that will be installed, but can be deleted later without interference.( Non - essential files )


Solution

  • FWIW, I believe your design goal of desiring to delete the files without MSI ever repairing them is misguided. Windows Installer is a declarative installation framework and it "owns" the desired state of the application installation and will always work to maintain it. There is really no practical way around this.

    What you can do is design your application so that "stock" icons are in one folder and your application copies them to another folder on first run and uses them from there. MSI never knows about this other folder so if you service the files (add/edit/delete) MSI won't interfere. However you can never delete the stock icons because MSI will fix it for you.