S> нужно знать, какую проблему вы пытаетесь решить
Вы путаетесь. Сначала вы (ссылаясь на FDG) говорили, что при дизайне фреймворка
нужно рассматривать максимально широкий спектр задач потенциальных пользователей.
А теперь говорите — нужна одна конкретная проблема и вообще поменьше усилий, чтобы обойтись одним изменением в отдельном случае.
С таким подходом вас вообще к проектированию фреймворков подпускать нельзя.
S> я бы решил дело простым парсером sln + csproj-файлов.
Это всё равно что сказать, что компилятор только из парсера состоит, а кодогенерация это фигня.
Парсер теряет информацию о положении токенов в тексте и не содержит модели редактирования
(таким образом, нельзя в дальнейшем анализировать последующие операции преобразования с точки зрения минимизации вносимых изменений в исходник .csproj)
Парсер строит AST, а нужно ещё задизайнить объектную модель, при помощи которой можно этим AST манипулировать.