Я не думаю, что есть какой-либо способ сделать это из Visual Studio, и, как указывает @gmagana, это будет очень трудно сделать, если файлы находятся под контролем версий.
Однако этоМожно сделать это вручную.
Начните с создания новой, желаемой структуры папок - пока проигнорируйте файлы .csproj и файлы решений, а также больше интересующих вас файлов .cs в новой структуре.
Теперь запустите Visual Studio и создайте новый пустой проект.Если у вас есть разные типы проектов, вы можете создать один новый пустой проект для каждого типа.В результате у вас останется пустой файл .csproj и файл .sln только с одним проектом.
Скопируйте пустой файл проекта туда, где они нужны, и переименуйте их при необходимости.Вы можете отредактировать их и изменить имя сборки и пространство имен по умолчанию, если хотите, или подождать, пока вы закончите, и изменить настройки с помощью Visual Studio.
Наконец, отредактируйте файл .sln и удалите раздел Project.,Скопируйте пустой файл .sln туда, куда вы хотите, и откройте его в Visual Studio.Теперь перейдите и добавьте каждый из существующих проектов в новое решение.
В каждом проекте нажмите кнопку «Показать все» и начните включать все файлы, которые вы скопировали, в структуру проекта.Устраните отсутствующие зависимости, измените пространства имен и имена сборок для проекта и убедитесь, что файлы кода не задают пространство имен, которое вам не нужно.Повторяйте, пока не закончите.
Как только вы получите новое решение для сборки, будет полезно открыть библиотеки DLL в Reflector, чтобы убедиться, что вы не пропустили ни одного объявления пространства имен в файле кода - если выПытаясь добраться до точки, где между библиотекой DLL и пространством имен имеется соответствие 1-1, или даже гарантировать, что пространства имен не разделены между библиотеками DLL, Reflector - ваш друг.
Удачи.