Как добавить существующее дерево каталогов в проект в Visual Studio?

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

Если «Добавить существующий файл» в папке «Службы» и перейти к файлу в структуре каталогов. Services> AccountManagement> CreateAccount.cs, он появляется в Visual Studio следующим образом: Services> CreateAccount.cs. Я не хочу это.

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

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

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

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

Вы также можете перетащить папку из проводника Windows в окно решения Visual Studio.

Копировать и вставить .

Чтобы добавить папку, все подкаталоги и файлы, мы также можем скопировать и вставить. Например, мы можем:

  1. Щелкните правой кнопкой мыши в проводнике Windows в папке и скопируйте в папку со многими файлами и папками.

  2. Затем в Visual Studio Solution explorer щелкните правой кнопкой мыши папку назначения и нажмите «Вставить».

  3. Необязательный добавить в TFS; Затем в верхней папке щелкните правой кнопкой мыши и зайдите в TFS, чтобы проверить все подпапки и файлы.

В Visual Studio 2015 вы так и делаете.

Если вы хотите автоматически включить все файлы-потомки под определенной папкой:

 

Это может быть ограничено включением только файлов в указанный путь:

  

Или даже файлы с указанным расширением:

  

Ссылка: http://jamesrpatterson.com/blog/automatic-include-in-project-for-visual-studio

Вы можете использовать символическую ссылку. Это позволяет изменить файл в одном проекте, изменить его в другом (так как это фактически тот же файл).

Сделать это:

  1. Открыть команду cmd в качестве администратора
  2. mklink / d [имя текущего каталога проекта] [каталог в другом проекте, на который он должен указывать]

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

Изменить для Anoop: шаги для добавления в Visual Studio:

  1. Создайте ссылку в папке проекта, используя приведенные выше шаги.
  2. В Visual Studio … выберите проект в обозревателе решений.
  3. В верхней части обозревателя решений … нажмите кнопку «Показать все файлы» (возможно, потребуется дважды щелкнуть по нему, если она уже активна).
  4. Теперь ссылка будет показана в вашем проекте … щелкните правой кнопкой мыши и выберите «Включить в проект».

Это шаги, которые я выполняю, и работает для нескольких разных проектов.

Чтобы расширить ответ Yuchen , вы можете включить файлы и пути в качестве ссылки. Это не то же самое, что добавление существующих элементов, потому что это не делает дополнительную копию в структуре папок вашего проекта. Это полезно, если вы хотите, чтобы одна каноническая папка / файл и т. Д. Использовалась в разных местах, но вы хотите сохранить только одну версию / копию.

Вот пример того, что вы можете добавить в файл *.csproj чтобы создать ссылку

  Helpers\RegexExtensions.cs   Helpers\ExceptBy.cs   %(RecursiveDir)%(Filename)%(Extension) PreserveNewest  

$(Codez) – это переменная среды Windows, которую я определил, вы можете использовать встроенные переменные среды таким же образом.

Последняя группа примеров – это набор файлов содержимого, которые мне нужны в конечном выпуске. См. https://stackoverflow.com/a/11808911/492 и другие ответы и ссылки для получения дополнительной информации об этом.

Дополнительная информация MSBuild на https://msdn.microsoft.com/en-us/library/bb629388.aspx

В Visual Studio 2017 вы переключаетесь между View Solution и Folder View взад и вперед. Я думаю, что это лучший вариант, потому что он будет держать решение более чистым. Я использую это для редактирования файлов .gitignore, .md и т. Д.

Просмотр решения и просмотр папки

В Visual Studio 2013 я не смог заставить «Включить в проект» работать, когда вы щелкаете правой кнопкой мыши по папке. Что работа расширяет папку, выбирая все файлы, а затем выбрав «Включить в проект». Это было довольно утомительно, так как вам нужно делать каждую папку по одной (но, по крайней мере, вы можете делать все файлы в каждой папке за один раз), и она, похоже, хранит путь к файлу (вы можете увидеть это, просмотрев свойства в файле и глядя на вариант «Относительный путь».)

Я надеюсь использовать это, чтобы развернуть некоторые файлы данных в проекте установщика Visual Studio, и, похоже, он забирает включенные файлы и сохраняет их пути.

Я думаю, что нашел способ сделать это с помощью Compile Include = “. \ Code ***. Cs” Я хотел бы включить рекурсивно код в папку Code.

Вот пример файла проекта.

   Library      Autogen          

Насколько я могу судить, единственный способ сделать это в VS2010 сродни методу перетаскивания. Щелкните правой кнопкой мыши по решению, к которому вы хотите добавить проект. В меню приложения будет добавлен элемент …. Открыв это, вы обнаружите, что одним из вариантов является добавление существующего проекта в решение.

В открывшемся диалоговом окне перейдите к папке, содержащей файл проекта для решения, и выберите ее. VS, как часть импорта этого файла проекта, также импортирует весь каталог, и я предполагаю, что все подчиненные каталоги являются частью этого проекта.

Поскольку для этого требуется существующий файл проекта, импортировать дерево каталогов будет невозможно, пока это дерево не будет преобразовано в проект.

Interesting Posts
Давайте будем гением компьютера.