Как мне "добавить существующий элемент" всю структуру каталогов в Visual Studio?

У меня есть автономный набор файлов, не связанных ни с одним проектом C#, которые находятся в сложной структуре вложенных каталогов.

Я хочу добавить их в этом формате в другой каталог в веб-приложении ASP.NET, над которым я работаю; сохраняя ту же структуру. Итак, я скопировал папку в целевое местоположение моего проекта и попытался "добавить существующий элемент" только для того, чтобы потерять предыдущую иерархию папок.

Обычно я заново создавал каталоги вручную, копировал их один на один, а затем добавлял существующие элементы. В этом случае просто слишком много каталогов / элементов.

Так как же добавить существующие каталоги и файлы в Visual Studio 2008?

16 ответов

Решение

Перетащите файлы / папки из Windows Explorer в Solution Explorer. Это добавит их всех. Обратите внимание, что это не работает, если Visual Studio находится в режиме администратора, поскольку проводник Windows является процессом в режиме пользователя.

Включите "Показать все файлы" для конкретного проекта (вам может потребоваться нажать "Обновить", чтобы увидеть их)**.

Папки / файлы, которые не являются частью вашего проекта, выглядят немного "светлее" в дереве проекта.

Щелкните правой кнопкой мыши папки / файлы, которые вы хотите добавить, и нажмите "Включить в проект". Он будет рекурсивно добавлять папки / файлы в проект.

** Эти кнопки расположены на панели инструментов мини-обозревателя решений.

** Убедитесь, что вы не в режиме отладки.

В обозревателе решений:

  1. Нажмите Показать все файлы (второй значок слева вверху обозревателя решений)
  2. Найдите папку, которую вы хотите добавить
  3. Щелкните правой кнопкой мыши и выберите "Включить в проект"

Я использую это для установки надстроек, таких как html-редакторы и сторонние файловые браузеры.

Я просто хочу отметить, что оба решения, предложенные выше
- Перетащите из проводника Windows
- Показать все файлы, а затем включить в проект.
Не делайте того, о чем спрашивал Вопрос:
Включить в проект ПРИ СОХРАНЕНИИ СТРУКТУРЫ СПРАВОЧНИКА.
По крайней мере, в моем случае (C++/CLI Project Visual Studio 2013 на Windows 7).
В Visual Studio, как только вы вернетесь в обычный вид (не Показать все файлы), все добавленные вами файлы будут перечислены на верхнем уровне проекта.
Да, на диске они все еще находятся там, где они были, но в Solution Explorer они свободны.

Я не нашел никакого пути, кроме как воссоздать структуру каталогов в Solution Explorer, а затем выполнить Add Existing Items в нужном месте.

Я не сразу понял это, основываясь на этих описаниях, но вот что я наконец наткнулся:

  1. Включите "Показать все файлы" - на панели инструментов Solution Explorer есть значок
  2. С помощью проводника Windows (не обозревателя решений) переместите файлы в структуру каталогов, в которой они должны находиться
  3. Нажмите "Обновить" также на панели инструментов обозревателя решений.
  4. Перемещенные файлы должны быть видны "призраками" в древовидной структуре Solution Explorer, в которой вы их разместили.
  5. Щелкните правой кнопкой мыши по своим призрачным файлам или папкам и нажмите "Включить в проект". Все содержимое папки будет включено

В дополнение к ответам. Ниже приведен значок "Показать все файлы", просто для удобства.

нажмите выше в красном круге, ваша папка появится в обозревателе решений

щелкните правой кнопкой мыши на папке -> включить в проект.

Это немного поздно, но вы можете изменить XML вашего проекта, чтобы автоматически добавлять существующие подпапки и структуры в ваш проект, например, "node_modules" из NPM:

Это для старых версий MSBuild / Visual Studio

<ItemGroup>
   <Item Include="$([System.IO.Directory]::GetFiles(&quot;$(MSBuildProjectDirectory)\node_modules&quot;,&quot;*&quot;,SearchOption.AllDirectories))"></Item>
</ItemGroup>

Для текущих версий MSBuild / Visual Studio:

Просто поместите его в узлы XML:

<Project> 
</Project>

В этом случае просто замените $(MSBuildProjectDirectory)\node_modules на имя вашей папки

Вы должны поместить свою структуру каталогов в каталог вашего проекта. А затем нажмите значок "Показать все файлы" в верхней части панели инструментов Solution Explorer. После этого будет добавлен добавленный каталог. Затем вам нужно будет выбрать этот каталог, щелкнуть правой кнопкой мыши и выбрать "Включить в проект".

В Marketplace теперь есть расширение с открытым исходным кодом, которое, кажется, делает то, о чем просил OP:

Папка в папку решения

ht tps:https://stackru.com/images/d3ec23af3af7973dcc926f0f25017fca6eae1072.gif

Если он не выполняет то, что вам нужно, код доступен, так что вы можете изменить его в соответствии со своим сценарием.

НТН

Вот что я делаю:

  1. Щелкните правой кнопкой мыши по решению -> Добавить -> Существующий веб-сайт...
  2. Выберите папку, где находится ваш сайт. Просто корневая папка сайта.

Затем в вашем решении будет добавлено все, от папок до файлов и файлов внутри этих папок.

Наконец, Visual Studio 2017 позволяет пользователю импортировать весь каталог одним щелчком мыши. VS 2017 имеет новую функциональность "Открыть папку", которая позволяет открывать всю папку даже без необходимости сохранять ее как решение. Исходный код можно импортировать, используя следующие методы.

  1. Файл -> Открыть -> Папка (ctrl + shift + o)
  2. devenv.exe <исходная папка>

Он даже поддерживает сборку и отладку проектов cmake.

https://blogs.msdn.microsoft.com/vcblog/2016/10/05/bring-your-c-codebase-to-visual-studio-with-open-folder/

Я обнаружил интересную хитрость: если вы перейдете к "Добавить существующий...", вы можете перетащить папку из открытого диалога в свое решение. У меня есть VS, чтобы он автоматически открывался в режиме администратора, так что это был хороший обходной путь для меня, так как я не хотел отменять это просто, чтобы заставить это работать.

Для меня было полезно перетащить папку в VS, затем щелкнуть правой кнопкой мыши по папке и выбрать "Открыть папку в проводнике". Затем выберите все и перетащите их в папку в VS.

Самый простой способ сделать это - создать новый проект библиотеки классов в целевой папке и перенаправить весь вывод его сборки в другое место. Он по-прежнему оставляет файл.csproj в этой папке, но он позволяет вам видеть его в Visual Studio и выбирать, какие файлы включать в ваш проект.

Прошло некоторое время с тех пор, как это было изначально опубликовано, но вот альтернативный ответ. Если вам нужно только просматривать физические файлы изнутри Visual Studio и вам не обязательно видеть их в представлении по умолчанию в обозревателе решений, нажмите кнопку переключения представления и выберите вид папки и любой физический каталог / каталог которые находятся в корневой папке решения, появятся здесь, даже если они не отображаются в представлении по умолчанию в обозревателе решений.

Если, однако, вы хотите добавить дерево папок, которое не слишком велико, как каталог / каталоги виртуального решения, чтобы соответствовать существующей древовидной структуре, сделайте это, а затем "добавьте существующие" физические файлы в виртуальный каталог / каталоги. Если физический каталог существует в каталоге вашего решения, он не будет копировать файлы - он будет напрямую связываться с физическими файлами, но они появятся как часть виртуальных каталогов решения.

В Windows 7 вы можете сделать следующее:

Щелкните правой кнопкой мыши по вашему проекту и выберите "Добавить-> Существующий элемент". В появившемся диалоговом окне найдите корневой каталог, который вы хотите добавить. В правом верхнем углу у вас есть окно поиска. Тип *.cs или же *.cppнезависимо от типа файлов, которые вы хотите добавить. После завершения поиска выберите все файлы, нажмите Добавить и подождите некоторое время...

Досадно, что Visual Studio изначально не поддерживает это, но CMake может создать проект Visual Studio как обходной путь.

Кроме этого, просто используйте QT Creator. Затем он может экспортировать проект VS.

Другие вопросы по тегам