Что-то для замечания о константах, они на самом деле хранятся в исполняемом файле, таким образом объявляя, что многие из них будут увеличивать размер исполняемого файла.
Обычно, это не огромная проблема, а мой друг работал в компании, которая осуществила, "все должно быть константой" правило и управляемый для значительного увеличения их скомпилированного исполняемого размера.
Вы смотрели ApplicationSettingsBase.Upgrade () ? Он позволяет обновить настройки с предыдущей версии с помощью следующего вызова:
My.Settings.Upgrade()
Рассматривали ли вы развертывание ClickOnce? Затем эта тема подробно рассматривается . IMO, ClickOnce намного проще как для разработчика, так и для пользователя.