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

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

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

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

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

11.09.2008 22:09:48
Тот факт, что это не очевидно для большинства людей (включая меня), является печальным свидетельством о Visual Studio.
Pete Alvin 29.04.2016 14:41:24
@ Пит Элвин У меня есть много печальных свидетельств о Visual Studio, но я ценю это больше сейчас, когда я провел время с некоторыми другими IDE.
Freek Nortier 14.07.2016 13:48:51
Visual Studio, однако, не идеальна, я использовал почти все доступные IDE. Если это лучшее. Eclipse даже не близко, Xcode, вероятно, единственный, кто подходит близко.
user1127081 11.12.2017 15:51:49
@ user1127081: я должен это подтвердить. Visual Studio довольно далек от совершенства, но я использовал почти все остальные IDE практически для каждой разработки и целевой ОС, и все они намного хуже. Я также должен согласиться с тем, что XCode явно и безусловно лучший из всех, но это стало так только после того, как он одобрил многое между XCode 3 и XCode 4. Eclipse - просто кошмар.
Kaiserludi 24.04.2018 12:44:56
17 ОТВЕТОВ
РЕШЕНИЕ

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

736
6.01.2014 22:38:05
Это не работает для меня. Это просто дает мне значок недопустимой цели. Показать все файлы ниже работает отлично, хотя
Cine 26.10.2010 03:25:20
В VS 2010, после перетаскивания папки, выберите опцию Показать все файлы в проекте. Файлы существуют в «призрачной» форме, щелкните правой кнопкой мыши папку и включите в проект. Затем они будут добавлены
John Ptacek 1.03.2011 11:26:37
@JohnPtacek: Это работает в проекте, но не в решении.
user1228 1.12.2011 22:08:15
Этот ответ недействителен для VS2010 (по крайней мере, насколько я могу судить). Ответ Тома 7/10/12 был лучшим решением для меня в VS2010
BLSully 13.08.2012 16:08:46
Убейте explorer.exe с помощью диспетчера задач, запустите его с правами администратора, а затем перетащите его в Visual Studio, даже если он работает от имени администратора.
xander 24.01.2014 12:51:19

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

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

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

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

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

544
12.12.2018 22:23:10
Кажется, что это работает только для файлов глубже, чем файл вашего проекта, если вы держите файл проекта в папке самостоятельно, это не будет работать.
Danny Parker 22.09.2011 16:16:08
Это работает только в отдельных проектах, но не в рамках решения.
user1228 1.12.2011 22:08:39
Да ... это не то место, куда вы должны положить файлы. Конечно, он не найдет файлы выше вашей корневой папки.
Bluebaron 8.06.2012 17:46:35
Это будет работать только тогда, когда вы хотите, чтобы добавленные вами папки находились в папке вашего проекта. В моем случае я хочу, чтобы они были где-то еще (разделены между проектами). В XCode перетаскивание структуры папок из любого места в структуру проекта сохраняет структуру папок, а не выравнивает ее, как VS. Похоже, VS не хватает здесь функции.
Mattijs 16.07.2013 12:23:36
Совет - убедитесь, что проект выбран, а не решение - тогда вы можете показать все!
niico 29.12.2013 15:56:15

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

5
20.11.2011 12:44:29
Это в значительной степени то, что предлагает принятый ответ и один из комментариев под ним.
Kev 20.11.2011 15:39:26

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

  1. Включите «Показать все файлы» - на панели инструментов Solution Explorer есть значок
  2. С помощью проводника Windows (не обозревателя решений) переместите файлы в структуру каталогов, в которой они должны находиться
  3. Нажмите «Обновить» также на панели инструментов обозревателя решений.
  4. Перемещенные файлы должны быть видны «призраками» в древовидной структуре Solution Explorer, в которую вы их поместили
  5. Щелкните правой кнопкой мыши по своим призрачным файлам или папкам и нажмите «Включить в проект». Все содержимое папки будет включено
22
8.02.2012 23:41:50
Это для папки с решениями, а не для проекта.
StingyJack 8.01.2017 02:16:01
Обновление: в VS2019 нет кнопки «обновить»
Liu Hao 10.11.2019 04:53:34

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

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

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

89
12.12.2018 22:24:40
Чем это отличается от ответа Брэннона 4 года назад?
ToolmakerSteve 14.05.2014 22:59:15
Это не решает исходную проблему, которая относится к папке Solution . Это также было ранее покрыто.
user2864740 6.02.2015 17:25:03
@ToolmakerSteve: Это отличается тем, что оно совпадает с решением Ганта из ... 7 лет назад. stackoverflow.com/questions/392473/…
Veverke 13.04.2015 14:21:11
Настоятельно рекомендуем это решение, так как оно также помогает, когда конфликтующие файлы csproj были отмечены, а tfs игнорирует конфликты и перезаписывает
John Demetriou 28.05.2015 12:20:53
+1. Я нашел этот ответ более полезным, чем другие, потому что он (относительно) проясняет, что Показать все файлы - это значок , а не запись в контекстном меню.
user565869 19.10.2015 18:19:07

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

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

0
29.11.2012 11:23:44
Это не поддерживает структуру каталогов - оно просто помещает все в папку, в которую вы нажали «Добавить».
Marc 26.02.2014 13:14:52

Я просто хочу отметить, что два из предложенных ранее решений,

  • Перетащите из проводника Windows
  • Показать все файлы и затем включить в проект.

не делайте то, что задан вопрос:

Включить в проект при сохранении структуры каталогов .

По крайней мере, не в моем случае (C ++ / CLI проект Visual Studio 2013 на Windows 7).

В Visual Studio, как только вы вернетесь в обычный вид (не Показать все файлы ), все добавленные вами файлы будут перечислены на верхнем уровне проекта.

Да, на диске они все еще находятся там, где они были, но в Solution Explorer они свободны.

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

35
12.12.2018 22:32:14
Я вижу такое же поведение, VS2010, C ++.
Radim Cernej 5.09.2014 17:05:00
Правда, также в Visual Studio 2010. Он даже не добавляет файлы без структуры каталогов для меня, просто самый первый файл в этой структуре папок, а не подпапки.
Jonas 23.01.2015 14:33:14
Согласитесь, это все же отличается. Интересно, как популярное и дорогое программное обеспечение, такое как VS, может не иметь такой функции. Мне кажется довольно странным иметь две разные, но похожие структуры в проводнике решений и проводнике Windows ...
Janis 3.02.2015 12:41:23
Используя 2015 здесь; все еще не сохраняет структуру папок. Обалдеть.
Toby Deshane 2.01.2016 14:55:21
Используя 2015 Обновление 3, только что имел успех с подходом от Бэннона и Тома. Все вложенные папки пришли как положено.
John Hatton 13.03.2017 21:34:59

Вы можете изменить 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 на имя вашей папки.

9
12.12.2018 22:33:21
Да, иногда ручное редактирование файла *. * Proj приведет вас туда, куда вы хотите.
Chris O 19.05.2016 19:25:53
То есть вы говорите, что кто-то может создать плагин для пакетной обработки? Потому что я не воссоздаю структуру папок с десятками папок вручную в xml
Spectraljump 8.12.2016 14:39:30
Именно то, что я искал
Vitaliy Kalinin 19.06.2018 10:35:12

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

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

-3
12.12.2018 22:34:23

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

Введите описание изображения здесь

16
12.12.2018 22:35:05

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

1
17.12.2018 16:07:03

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

0
7.10.2016 13:31:12

Я обнаружил интересную хитрость: если вы перейдете к «Добавить существующее ...», вы можете перетащить папку из открытого диалога в свое решение.

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

2
12.12.2018 22:37:51

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

  1. Файл меню → Открыть → * Папка ( Ctrl+ Shift+ O)
  2. devenv.exe <source folder>

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

Перенесите свою кодовую базу C ++ в Visual Studio с помощью «Открыть папку»

4
12.12.2018 22:41:45

Это то, что я делаю:

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

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

4
28.04.2017 05:43:34

Введите описание изображения здесь

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

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

13
14.12.2018 18:32:59

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

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

Папка-к-решения-папки

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

НТН

4
4.04.2019 14:03:50
Расширение не работает для меня в версии VS 15.9.13 2017
Mateusz Migała 25.07.2019 09:31:43