About Windows Installer, the .NET Framework, and Visual Studio.
It’s always important to test your product before it ships. Servicing it later can prove very costly and very difficult. It’s no different with your installation packages. You need to test not only basic install and uninstall operations, but also test your servicing plan. Problems are inevitable in practically any application, and you may even need to add in additional features. So test that you can before your product ships.
Before testing your product deployment, you need to define and document what you will conceivably support. Many of the following options supported by Windows Installer are also supported by other deployment technologies.
When you have documented how you will service your product, be sure to test all combinations. For example, if you will use small update patches for hotfixes but minor upgrade patches for service packs, test installing patches on both the initial release (RTM) and a service pack. You should also test more than one service pack to make sure all update scenarios are covered.
Besides testing different scenarios, also test your different resources types. Whether you have versioned files (ex: EXE, DLL), unversioned files (ex: TXT, XML), registry values, services, COM servers, any custom resource types, or a mixture of different resources types, test them all. Different types of resources upgrade differently or are adversely affected by multiple products having install the same set of resources (shared components).
Once you have documented and tested a particular servicing plan, try to stick to it. Changing tactics later may not work and can cause issues.