We are working on a new library version that contains some UI controls that are used by other applications. Some of these controls have new features that the old applications don't know about. We will disable the new features by default, but there are specific apps for which we'd like to enable them. The apps are likely to exist on the same machine.
How would you recommend implementing this?
Update: The best solution I've come up with is to use Process.GetCurrentProcess() and use something like the proc.MainModule.FileVersionInfo.InternalName to look for a registry key that specifies the override value. Perhaps also looking at a version number to check that it's too old to know about the new features. Are there problems with this method?
Update: The added features are encapsulated within the control, it's just that they make sense in some contexts and not in others.