Як я можу "додати існуючий елемент" всю структуру каталогів у Visual Studio?


765

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

Я хочу додати їх у такому форматі до іншого каталогу веб-додатку ASP.NET, над яким я працюю; зберігаючи однакову структуру. Отже, я скопіював папку в цільове місце свого проекту і намагався "додати існуючий елемент" лише для того, щоб втратити попередню ієрархію папок.

Зазвичай я створював каталоги вручну, копіював їх по одному, а потім додав існуючі елементи. У цьому випадку просто занадто багато каталогів / елементів.

Тож як ви додаєте існуючі каталоги та файли у Visual Studio 2008?


44
Те, що це не очевидно для більшості людей (включаючи мене), є сумним свідченням про Visual Studio.
Піт Елвін

22
@ Pete Alvin У мене є багато сумних заповітів про Visual Studio, але ціную це більше, коли я провів час з деякими іншими IDE там.
Фрік Нортьє

4
Візуальна студія не є ідеальною, але я використовував майже всі наявні IDE. Якщо найкраще. Затемнення навіть не близько, Xcode - це, мабуть, єдиний, хто наближається.
user1127081

2
@ user1127081: я мушу цю секунду. Visual Studio - це далеко не ідеально, але я використовував майже всі інші IDE для майже кожної розробки та цільової ОС там, і всі вони, пекло, набагато гірші. Я також повинен погодитись, що Xcode - це явно і далеко не найкраще з решти, але це стало так лише після того, як він схвалив багато між Xcode 3 і Xcode 4. Eclipse - це просто кошмар.
Кайзерлуді,

Відповіді:


737

Перетягніть файли / папки з Провідника Windows у Провідник рішень. Це додасть їх усіх. Зверніть увагу, що це не працює, якщо Visual Studio знаходиться в режимі адміністратора, оскільки Windows Explorer є процесом користувальницького режиму.


42
Це не працює для мене. Це просто дає мені значок недійсної цілі краплі. Показати всі файли нижче, відмінно працює
Cine

115
У VS 2010, після перетягування папки, виберіть опцію Показати всі файли в проекті. Файли існують у "примарній" формі, клацніть правою кнопкою миші на папці та включіть у проект. Потім вони будуть додані
Іван Птачек

10
@JohnPtacek: Це працює в проекті, але не в рішенні.

2
Ця відповідь не стосується VS2010 (принаймні, наскільки я можу сказати). Відповідь Тома 7.10.12 була найкращим рішенням для VS2010
BLSully

8
Убийте explorer.exe за допомогою диспетчера завдань, запустіть його як адміністратора, а потім ви можете перетягнути його до Visual Studio, навіть якщо він працює як адміністратор.
xander

545

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

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

Клацніть правою кнопкою миші папки / файли, які ви хочете додати, та натисніть «Включити у проект» . Рекурсивно додаватимуть папки / файли до проекту.

** Ці кнопки розміщені на панелі інструментів mini Solution Explorer.

** Переконайтесь, що ви НЕ в режимі налагодження.


2
Здається, що це працює лише для файлів, глибших, ніж файл вашого проекту, якщо ви зберігаєте файл проекту в папці самостійно, це не працює.
Денні Паркер

28
Це працює лише в окремих проектах, але не в рамках рішення.

7
Да ... це не те, де ви повинні ставити файли. Звичайно, файли над вашою кореневою папкою не збираються.
Bluebaron

3
Це працюватиме лише тоді, коли ви хочете, щоб додані вами папки знаходилися у вашій папці проекту. У моєму випадку я хочу, щоб вони були десь ще (поділилися між проектами). У XCode перетягування структури папки з будь-якого місця в структуру проекту зберігає структуру папки, а не вирівнювання її як VS. Схоже, тут VS не має функції.
Mattijs

9
порада - переконайтеся, що проект обраний, а не рішення - тоді ви можете все показати!
niico

89

У Провіднику рішень:

  1. Клацніть Показати всі файли (другий значок зліва вгорі Провідника рішень).
  2. Знайдіть папку, яку ви хочете додати.
  3. Клацніть правою кнопкою миші та виберіть "Включити у проект"

Я використовую це для встановлення додатків, таких як редактори HTML та сторонніх веб-переглядачів файлів.


16
Чим це відрізняється від відповіді Браннона від 4 років раніше?
ToolmakerSteve

7
Це не стосується оригінальної проблеми, що стосується папки Solution . Це також було висвітлено раніше.
користувач2864740

@ToolmakerSteve: Він відрізняється тим, що це те саме, що рішення Ганта з ... 7 років раніше. stackoverflow.com/questions/392473 / ...
Veverke

Дуже рекомендую це рішення, оскільки воно також допомагає, коли файли csproj були зареєстровані, а tfs ігнорує конфлікти та перезаписує
Джон Деметріу,

6
+1. Я вважав цю відповідь більш корисною, ніж інші, тому що це дає зрозуміти (відносно) зрозуміло, що Показати всі файли - це значок , а не запис у контекстному меню.

35

Я просто хочу зазначити, що два запропоновані раніше рішення,

  • Перетягування з Провідника Windows
  • Показати всі файли, а потім включити у проект.

не робіть того, про що ставили запитання:

Включіть у проект , зберігаючи структуру каталогу .

Принаймні, не в моєму випадку (проект C ++ / CLI Visual Studio 2013 на Windows 7).

У Visual Studio, коли ви повернетесь у звичайний режим перегляду (не Показати всі файли ), додані вами файли перераховані на верхньому рівні проекту.

Так, на диску вони все ще перебувають там, де вони були, але в Провіднику рішень вони вільні.

Я не знайшов способу його вирішення, окрім як відтворити структуру каталогів у Провіднику рішень і виконати додавання існуючих елементів у потрібному місці.


Я бачу таку саму поведінку, VS2010, c ++.
Радім Черней

Правда, також у Visual Studio 2010. Він навіть не додає файлів без структури каталогів для мене, а лише перший файл у цій структурі папок, а не підпапки.
Йонас

2
Погоджено, воно все ще відрізняється. Цікаво, як у популярного та дорогого програмного забезпечення, такого як VS, може не вистачати такої функції. Я вважаю доволі заплутаним наявність двох різних, але схожих структур у провіднику рішень та windows explorer ...
Janis

12
Використання 2015 року тут; досі не зберігає структуру папок. Приголомшений.
Тобі Дешане

Використовуючи 2015 Update 3, просто вдалося досягти підходу від Баннона та Тома. Усі вкладені папки увійшли як очікувалося.
Джон Хаттон

22

Я не відразу зрозумів це на основі цих описів, але ось, на що я нарешті натрапив:

  1. Увімкніть "Показати всі файли" - на панелі інструментів Провідника рішень є значок
  2. Використовуйте Провідник Windows (не провідник рішень), перемістіть свої файли в структуру каталогу, куди ви хочете, щоб вони знаходилися
  3. Натисніть "Оновити" також на панелі інструментів Провідник рішень
  4. Переміщені файли повинні бути видимими "примарними" у структурі дерева Solution Explorer, куди ви їх розмістили
  5. Клацніть правою кнопкою миші на ваших прихованих файлах чи папках та натисніть «Включити у проект». Буде включено весь вміст папки

2
Це для папки рішення, а не для проекту.
StingyJack

Оновлення: у VS2019 немає кнопки "оновлення"
Лю Хао


13

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

Клацніть вище в червоному колі. Ваша папка з’явиться в Провіднику рішень.

Клацніть правою кнопкою миші на папці -> Включити в проект .


9

Ви можете змінити 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 на своє ім'я папки.


Так, іноді вручну редагуючи файл *. * Proj, ви потрапите туди, куди хочете піти.
Кріс О

1
Тобто ти кажеш, що хтось міг би зробити плагін для пакетної роботи? Тому що я не відтворюю структуру папок із десятками папок вручну в xml
Spectraljump

Саме те, що я шукав
Віталій Калінін

5

Потрібно помістити структуру свого каталогу у каталог вашого проекту. А потім натисніть значок "Показати всі файли" у верхній частині панелі інструментів Провідник рішень. Після цього буде показано доданий каталог. Потім потрібно вибрати цей каталог, клацнути правою кнопкою миші та вибрати "Включити у проект".


1
Це майже те, що пропонує прийнята відповідь та один із коментарів під нею.
Кев

4

Це те, що я роблю:

  1. Клацніть правою кнопкою миші рішення -> Додати -> Існуючий веб-сайт ...
  2. Виберіть папку, де знаходиться ваш веб-сайт. Просто коренева папка сайту.

Тоді у ваше рішення буде додано все: від папок до файлів та файлів усередині цих папок.


4

Нарешті, Visual Studio 2017 дозволяє користувачеві імпортувати весь каталог одним натисканням кнопки. Visual Studio 2017 має новий функціонал "Відкрити папку ", який дозволяє відкрити всю папку навіть без необхідності зберігати її як рішення. Вихідний код можна імпортувати, використовуючи наступні методи.

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

Він навіть підтримує створення та налагодження проектів CMake.

Перенесіть свою кодову базу C ++ у Visual Studio за допомогою "Відкрити папку"


4

Зараз на Marketplace є розширення з відкритим кодом, яке, здається, робить те, що просила ОП:

Папка для рішення папки

папка-рішення-папка

Якщо він не робить саме те, що ви хочете, код доступний, тому ви можете змінити його відповідно до вашого сценарію.

HTH


Розширення не працювало для мене у версії VS 15.9.13 2017
Mateusz Migała

2

Я чіткий трюк, який я виявив, що якщо ви перейдете до "Додати існуючу ...", ви можете перетягнути папку з відкритого діалогового вікна до свого рішення.

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


1

Для мене працювало те, щоб перетягнути папку у Visual Studio, потім клацніть правою кнопкою миші папку та виберіть «Відкрити папку у провіднику файлів». Потім виберіть усі та перетягніть їх у папку Visual Studio.


0

У Windows 7 можна зробити наступне:

Клацніть правою кнопкою миші на вашому проекті та виберіть "Додати-> існуючий елемент". У діалоговому вікні, що з’явиться, перейдіть до кореня каталогу, який ви хочете додати. У правому верхньому куті у вас є вікно пошуку. Введіть *.csабо *.cpp, незалежно від типу файлів, які ви хочете додати. Після завершення пошуку виберіть усі файли, натисніть кнопку Додати та зачекайте деякий час ...


5
Це не підтримує структуру каталогу - він просто поміщає все в папку, в яку ви натиснули, додати.
Марк

0

Найчистішим способом, який я знайшов для цього, є створення нового проекту бібліотеки класів у цільовій папці та перенаправлення всіх його результатів збірки в інше місце. Він все ще залишає файл .csproj, що знаходиться у цій папці, але він дозволяє вам бачити його у Visual Studio і вибирати, які файли потрібно включити у ваш проект.


-3

Прикро, що Visual Studio не підтримує це споконвічно, але CMake може генерувати проект Visual Studio як обхід.

Крім цього, просто використовуйте Qt Creator. Потім він може експортувати проект Visual Studio.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.