У меня есть решение Visual Studio. В настоящее время это пустое решение (= нет проектов), и я добавил несколько папок с решениями.
Папки решений только кажутся «виртуальными папками», потому что они на самом деле не создаются в файловой системе, а файлы внутри папок решений просто находятся в той же папке, что и файл .sln.
Есть ли параметр, который я пропустил, который указывает Visual Studio рассматривать папки решений как «настоящие» папки, то есть создавать их в файловой системе и перемещать в нее файлы, когда я перемещаю их внутри решения в одну из этих папок?
Изменить: Спасибо. Тогда собираюсь сделать предложение для VS2010 :)
visual-studio
Майкл Штум
источник
источник
Ответы:
Никакой специальной настройки. Я не думаю, что это поддерживается.
Вы можете создавать настоящие папки в «проекте» внутри решения, но не в самом решении.
источник
Есть обходной путь, который на самом деле ведет себя так, как ожидалось .
Готово. Теперь обозреватель решений будет отражать любые изменения в файловой системе и наоборот (включая подпапки).
Я (скучаю) использую его для спецификаций, документации, PM и некоторых сценариев DevOps, которые используются в команде. Легко выбрать, что включать в систему контроля версий или нет, и (при правильной настройке) это не конфликтует со сборкой.
Я знаю, что эта функция не предназначена для этого варианта использования, но, за исключением, возможно, вводящего в заблуждение значка «Проект», я пока не обнаружил недостатков в этом взломе. И все же есть случаи использования, когда классические (виртуальные) папки решений, которые предоставляет VS, вписываются в картину. Что вы думаете?
источник
.*proj
формат файловой системы на основе глобуса.В Visual Studio 2017 щелкните значок «Решения и папки» в окне обозревателя решений. Эта кнопка переключает из виртуального представления «решения» в «исходное представление», которое соответствует макету папок и файлов в файловой системе. Когда вы добавляете новую папку, она физически создается в ожидаемом месте. ,
источник
Выбранный ответ предполагает, что можно было бы использовать реальные проекты вместо папок решений, но не объясняет, как это сделать. Думаю, то, что я здесь описываю, возможно, наименее неудобный способ добиться этого ... :-P
Проблема с обычными файлами проекта заключается в том, что они в конечном итоге будут скомпилированы
MSBUILD
. И если вы хотите иметь проект, который содержит только некомпилируемые файлы, это будет проблемой.Но некоторое время назад Visual Studio представила новый тип проекта: Shared Project (расширение .shproj). Этот тип проекта не компилируется по умолчанию, а только тогда (и только если) на него ссылается другой проект.
Таким образом, одна из хитростей заключается в использовании общих проектов вместо папок решений . Очевидно, что можно добавить общий проект, на который никогда не ссылается какой-либо другой проект, что означает, что мы можем избежать проблемы, представленной выше.
Затем, используя
<None Include="**/*" />
предложение в файле .shproj, мы можем заставить его автоматически отражать любые новые файлы и / или подпапки.Итак, в основном сделайте это:
Например, в моем случае я создал DockerDev.shproj, поэтому я могу сгруппировать некоторые сценарии, связанные с докерами, которые мы запускаем только на наших машинах для разработки:
Этот файл .shproj будет отслеживать любой файл в любой подпапке этой новой
DockerDev
папки в моем решении.Насколько я мог видеть, это решение работает очень похоже на то, что запрашивал OP: оно будет работать как некомпилируемая ссылка на папку и автоматически будет отражать любые внесенные в нее изменения.
источник
Сара Форд добавила макрос, чтобы сделать это. В Visual Studio 2010, если вы откроете Macro Explorer, вы увидите макрос под названием «GenerateSlnFolderOnDirStructure». Это автоматизирует создание папок решений и добавление файлов.
источник
Папка в папку решения Сесилии Вирен - CeciliaSHARP
Избавьтесь от необходимости добавлять несколько файлов в папку с решениями. Просто используйте контекстное меню для решения и чуть ниже опции создания новой папки решения вы теперь найдете «Добавить папку как папку решения». Это создаст папку решения с тем же именем, что и вы выбрали, и добавит элементы из этой папки в папку решения. Это не переместит файлы на диск.
источник
Нет, не поддерживается. Как вы и подозревали, папки решений - это просто виртуальные подстатьи в файле .sln, не имеющие ничего общего с файловой системой.
источник
Visual Studio не поддерживает это. Я сделал расширение, которое делает что-то подобное для VS2013. Он сопоставляет папки решения с физическими папками на вашем жестком диске, хотя сопоставление является односторонним (от жесткого диска к решению). Это означает, что содержимое папки решения будет отражать содержимое папки жесткого диска, а не наоборот.
После этого расширение все еще может быть полезно. Он поддерживает сопоставление папок решения с физическими папками, фильтрацию файлов и каталогов на основе регулярного выражения и запоминание сопоставлений в вашем файле .sln. Свойства ненавязчивы, поэтому разработчики без расширения могут открыть sln и не пострадают.
Размещено в галерее Visual Studio: https://visualstudiogallery.msdn.microsoft.com/69e19ea6-4442-4cb6-b300-044dd21f02bd
Изменить: загружено в битбакет. Теперь с открытым исходным кодом. Лицензия MIT. https://bitbucket.org/LSS_NorthWind/physical-solution-folders
источник
Примечание: Да, это возможно, вы можете создать папку в корневом каталоге, но это немного сложно ....
Приложив дополнительные усилия, вы можете это сделать. Как? Давайте следовать за шагом -
6. Перенести репозиторий на новое место.
Вы сделали...
если вы по-прежнему не видите свою папку -----
Поздравляю, вы закончили ..
Если у вас возникнут проблемы, просто напишите мне о помощи ..
источник
Создайте «Папку решения». Это создаст логическую папку, но не физическую. Щелкните правой кнопкой мыши папку решения и откройте диалоговое окно нового проекта. Но прежде чем вы нажмете ОК, вам нужно изменить местоположение проекта на желаемую физическую папку, и VS создаст ее и поместит проект внутрь.
источник
Вы можете добавить настоящие папки, выбрав «Добавить новый фильтр» для файла проекта Visual Studio. Вы также можете сделать «Добавить новый фильтр» в существующей папке. После создания папки переименуйте ее и добавьте исходный файл или файл заголовка, или в зависимости от того, что подходит вашему проекту. Это один из известных мне способов создания настоящих папок через IDE Visual Studio.
источник
Папка, созданная под решением, будет виртуальной, как сказано. Возможно, это можно было бы назвать обходным путем, но вы можете физически создать папку на диске либо до, либо при добавлении нового элемента / проекта, и Роберт должен быть родным братом вашего отца.
ps - при внимательном рассмотрении, может быть, мне стоит объяснить "Боб твой дядя" означает, что ты в порядке / отсортирован.
источник
Я сам хотел эту функцию несколько раз, но, в конце концов, вам действительно НЕ нужна возможность делать это. Думайте о своем решении (файле) как о корне веб-приложения, а папки решений как о виртуальных каталогах (буквально и функционально). Содержимое виртуального веб-каталога может физически находиться на другом сервере. Visual Studio запутала концепцию папок решений, позволив вам создавать новые файлы внутри папки. Вы всегда должны «Добавить существующее» при добавлении контента. Когда вы добавляете существующий, он создает ссылку на исходное расположение файла.
Но что касается причины, по которой вы не хотите, чтобы папки решений вели себя как «физические» папки, это связано с тем, что в макете решения не обязательно используется то же соглашение, что и в макете системы управления версиями. Папки решений позволяют настраивать иерархию ваших проектов, чтобы вы могли группировать проекты и элементы вместе любым удобным вам способом, а затем решить, что вам это не нравится, и изменить его снова, не переживая кошмар перемещения элементов управления версиями. вокруг и раздражая остальную часть вашей команды.
источник
src
,test
,tools
и т.д. Вы бы определенно хотите , чтобы принять это решение в самом начале проекта до точки о раздражает команду, но это верно для большинства архитектурных решений.У меня есть способ обойти это (не очень хорошо, но работает).
Это не очень хорошо, потому что вам нужно будет вручную поддерживать ссылки на файлы, но у меня это работает.
источник