Неадекватное поведение Visual Studio при добавлении классов в проект с указанием каталога создания файлов
Скажите, пожалуйста, существует ли способ решить следующую проблему в Visual Studio:
- Есть проект, в котором весьма глубокая структура каталогов.
- Выполняется добавление в проект нового класса в один из каталогов (
hpp+cppфайлы). - В диалоговом окне указывается имя класса и путь к каталогу.

- Далее появляется другое диалоговое окно, в котором можно поменять имя класса и имена
hppиcppфайлов. Для файлов также можно выбрать каталог (еще раз...). Если я нажимаю на кнопку с многоточием для указания каталогаhppилиcppфайлу, то вижу совершенно не тот путь, который указывался на шаге3. Допустим, для файлов вновь задается верный каталог. НажимаетсяOK.
- Класс в проект добавляется, соответствующие ему файлы создаются и с очень высокой вероятностью появляются в каком угодно каталоге, но только не в том, который задавался целых три раза.
Как с этим бороться? Такое поведение наблюдается уже давно (годы), и порядком мешает работе
Ответы (1 шт):
Система проектов С++ в Visual Studio вообще толком не поддерживает вложенные каталоги (в отличие от C#, например). Для организации проекта используются фильтры по расширениям, в которых в кучу показываются файлы из разных физических каталогов. Диалог создания класса тут только часть проблемы. Насчет этого уже открывали баг: https://developercommunity.visualstudio.com/content/problem/8138/c-project-context-menu-add-class-adds-the-class-to.html, но он был закрыт как "by design".
Но в качестве обходного пути можно сделать так:
- Включить в обозревателе решений "Показать все файлы":
При этом вместо фильтров отобразиться физическая структура каталогов. Увы, вместе с ней отобразиться в всякий мусор, вроде Debug/Release :(
Добавляем класс как обычно, в корневой каталог проекта.
В обозревателе решений берем полученные файлы Class.cpp и Class.hpp и перетаскиваем в нужный вложенный каталог.
Тогда файлы будут физически перемещены в нужный вложенный каталог.
