Я столкнулся с очень похожей проблемой, и вот решение, которое я нашел.
Я поместил все свои формы GUI в DLL, включая основную форму запуска. Затем я создал 2 EXE-проекта, которые ссылаются на мой графический интерфейс. Один имеет название Product, а другой ProductBeta.
Код в EXE-файле практически одинаков между ними. А именно Application.Run (новый MainForm ()).
Затем я настроил их на публикацию в подкаталогах того же ресурса.
Это раздражает и имеет некоторые накладные расходы, но результаты работают очень хорошо.