I can't speak for ESRI, but from what I understand they prefer #1. I have chosen #2 - distribute the .ecfg files in my Windows Installer to all of the directories that they might be needed in (Desktop, Engine, or Server). It is not quite a hard-coded path because Windows Installer knows how to find the Common Files directory, even if it is somehow a different location than C:\Program Files\Common Files\. As you mentioned, #1 is a bad idea because it requires two custom actions (reg and unreg) with conditions that will correctly run those actions when necessary (reg on install or upgrade but not uninstall, unreg on uninstall but not upgrade or install). Not to mention the rollback! It is much simpler to let Windows Installer install the .ecfg files. It knows how to handle all those conditions and does rollback correctly, too. We also did #3 so that we can generate .ecfg files for our VB6 projects, but we still use the .ecfg files in our MSI, not a custom action. I don't see how #3 is any different from #1 if you are planning to run it from a custom action.
... View more