Как добавить существующее дерево каталогов в проект в Visual Studio?
проблема очень проста. Вместо создания папок в Visual Studio я создаю структуру каталогов для своего проекта в файловой системе. Как включить все папки и файлы в проект, сохраняя структуру?
Если я "добавляю существующий файл" в папку с именем Services и перейдите к файлу в структуре каталогов .. Службы > Управление Учетными Записями > CreateAccount.cs, он появляется в Visual Studio следующим образом: Службы > CreateAccount.цезий. Я не хочу этот.
У меня уже разработана целая структура каталогов, так как я имитирую наших разработчиков клиентов, использующих ту же структуру для организации. Как добавить все папки и файлы в проект в Visual Studio? Или я должен делать то, что делают большинство пользователей Microsoft, и "мириться с этим" и воссоздавать каждую папку через Visual Studio?
10 ответов
вам нужно поместить структуру каталогов в каталог проекта. А затем нажмите значок "показать все файлы"в верхней части панели инструментов обозревателя решений. После этого будет показан добавленный каталог. Затем вам нужно будет выбрать этот каталог, щелкнуть правой кнопкой мыши и выбрать "включить в проект"."
вы также можете перетащить папку из Проводник Windows в окне решения Visual Studio.
в Visual Studio 2015, вот как вы это делаете.
Если вы хотите автоматически включить все файлы потомков под определенной папкой:
<Content Include="Path\To\Folder\**" />
Это может быть ограничено, чтобы включить только файлы в указанном пути:
<Content Include="Path\To\Folder\*.*" />
или даже только файлы с указанным расширением:
<Content Include="Path\To\Folder\*.jpg" >
ссылка: http://jamesrpatterson.com/blog/automatic-include-in-project-for-visual-studio
Копировать & Вставить.
чтобы добавить папку, все подкаталоги и файлы, которые мы также можем скопировать и вставить. Например, мы можем:
щелкните правой кнопкой мыши в проводнике Windows в папке и скопируйте в папку со многими файлами и папками.
затем в обозревателе решений Visual Studio щелкните правой кнопкой мыши папку назначения и выберите Вставить.
необязательно добавить в TFS; затем в верхней части щелкните правой кнопкой мыши папку и зайдите в TFS, чтобы проверить все подпапки и файлы.
вы можете использовать символическую ссылку. Это делает изменение файла в одном проекте изменить его в другом (как это на самом деле тот же файл).
для этого:
- открыть приглашение cmd как администратор
- mklink / d [текущее имя каталога проекта] [каталог в другом проекте он должен указывать на]
Это имеет свои недостатки и подводные камни, но я использую его иногда для дубликатов библиотек, которым нужны разные имена.
изменить для Ануп: Шаги для добавления в Visual Studio:
- создать ссылку в папке проекта, используя шаги выше.
- В Visual Studio... выберите проект в обозревателе решений.
- в верхней части обозревателя решений... нажмите кнопку Показать все файлы (может потребоваться дважды щелкнуть ее, если она уже активна).
- ссылка теперь будет отображаться в вашем проекте... щелкните правой кнопкой мыши и выберите Включить в проект.
Это шаги, которые я следую и работает для пара разных проектов.
расширить на ответ Ючена можно включать файлы и пути в ссылку. Это не то же самое, что добавление существующих элементов, поскольку он не создает дополнительную копию в структуре папок вашего проекта. Это полезно, если вы хотите, чтобы одна каноническая папка / файл и т. д. использовалась во многих разных местах, но вы хотите поддерживать только одну версию/копию.
вот пример того, что вы можете добавить к создать ссылка
<Compile Include="$(Codez)\z.Libraries\Common\Strings\RegexExtensions.cs">
<Link>Helpers\RegexExtensions.cs</Link>
</Compile>
<Compile Include="..\..\z.Libraries\MoreLINQ\MoreLinq\ExceptBy.cs">
<Link>Helpers\ExceptBy.cs</Link>
</Compile>
<Content Include="C:\Codez\Libs\Folder\OtherFolder\**\*.*">
<Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
$(Codez)
- это переменная среды Windows, которую я определил, вы можете использовать встроенные переменные среды таким же образом.
последняя группа примеров-это куча файлов контента, которые мне нужны в окончательном выводе. Вижу https://stackoverflow.com/a/11808911/492 и другие ответы и ссылки есть на что.
больше информации MSBuild на https://msdn.microsoft.com/en-us/library/bb629388.aspx
в Visual Studio 2017 вы переключаетесь между Посмотреть Решение и Посмотреть В Папке и обратно. Я думаю, что это лучший вариант, потому что он будет держать уборщика решения. Я использую это для редактирования .гитюдного, .файлы MD и др.
в Visual Studio 2013 я не мог заставить" включить в проект " работать при щелчке правой кнопкой мыши по папке. Что действительно работает, это расширение папки, выбор всех файлов, а затем выбор "включить в проект". Это было довольно утомительно, поскольку вам нужно делать каждую папку по одному (но, по крайней мере, вы можете делать все файлы в каждой папке за один раз), и, похоже, сохранить путь к файлу (вы можете увидеть это, просмотрев свойства файла и посмотрев на опцию "относительный путь".)
Я надеюсь чтобы использовать это для развертывания некоторых файлов данных в проекте установщика Visual Studio, и, похоже, забрать включенные файлы и сохранить их пути.
Я думаю, что нашел способ сделать это с помощью компиляции Include=".\Код.***цезий" Я хотел бы рекурсивно включить код в папку с кодом.
вот пример файла проекта.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="15.0" DefaultTargets="BuildTarget">
<PropertyGroup>
<OutputType>Library</OutputType>
</PropertyGroup>
<PropertyGroup>
<StartupObject />
</PropertyGroup>
<PropertyGroup>
<RootNamespace>Autogen</RootNamespace>
</PropertyGroup>
<ItemGroup>
<Compile Remove="@(Compile)" />
<Compile Include=".\Code\**\*.cs" />
</ItemGroup>
<Target Name="BuildTarget">
<Message Text="Build selected" Importance="high"/>
</Target>
</Project>
насколько я могу судить, единственный способ сделать это в VS2010 сродни методом перетаскивания. Щелкните правой кнопкой мыши решение, к которому требуется добавить проект. Меню приложения будет иметь add ... пункт. Открыв его, вы обнаружите, что одним из вариантов является добавление существующего проекта в решение.
В открывшемся диалоговом окне перейдите к папке с файлом проекта для решения, и выделите его. VS будет, как часть импорта этого файла проекта, также импортируйте весь каталог и, я предполагаю, любые подчиненные каталоги, которые являются частью этого проекта.
поскольку для этого требуется существующий файл проекта, не будет невозможно импортировать дерево каталогов, пока это дерево не будет преобразовано в проект.