Я бы пошел на более простое решение:
- поместите ваш код в сборки
- создавать проекты оболочки, которые содержат только основную форму с меню и панелями инструментов для каждой версии. Меню и панели инструментов должны активировать формы / функции только из сборок.
Таким образом, вам не нужны конфигурационные файлы для включения / выключения функций, нет кода «доступа к функциям», который вы должны иметь, если вы помещаете все в одно приложение. Кроме того, нет никаких шансов, что ваш пользователь взломает ваше приложение или ключ и получит доступ к функциям, которые он не оплачивал.
Недостатком является то, что вы не можете обновить пользователя со «Стандартного» до «Профессионального», просто отправив новый ключ, пользователь должен загрузить и установить новое приложение.