Исключить папку в project.json
в новом шаблоне asp.net 5 есть project.json, в котором вы можете исключить определенные каталоги.
"exclude": [
"wwwroot",
"node_modules",
"bower_components",
"dist",
".tmp"
]
Как вы можете видеть, я добавил несколько папок, таких как "dist" и ".tmp", но они все еще включены в проводник решений. Там не так много документации об этом. Как exculde файлы/папки из вашего проекта в 2015 году?
Ответы
Ответ 1
Глядя на состояние asp.net 5 с визуальной студией 2015, я могу только сказать, что им было намного сложнее и неудобно работать с бегунами задач вроде gulp или хрюкать. Поскольку я использую Web API 2 для управления своими данными, я переключился на Visual Studio Code с помощью bower, gulp и browsersync, и это оказалось намного проще и быстрее с гораздо меньшим количеством помех.
Чтобы создать шаблон запуска: https://github.com/Swiip/generator-gulp-angular
Теперь вы можете использовать любой редактор, и вы получите четкое разделение переднего и заднего конца. Кроме того, вы познакомитесь с gulp и bower и (минимальными) командами, которые VS2015 пытается сделать для вас (и не может делать так много раз).
О да: вам больше не нужно больше исключать папки, так как шаблон имеет гораздо более разумную структуру папок
Ответ 2
Свойство "exclude" не скрывает папку из visual studio, она не заставит папку "исчезнуть" из проводника решений.
Свойство "exclude" удаляет папку из пути поиска компиляции. Это инструкция для компилятора (Roslyn), а не IDE. В качестве более полного ответа "project.json" преднамеренно является IDE-агностиком. Вот почему есть и projecname.xspoj, и project.json, которые содержат информацию о конфигурации проекта. Это необходимо для обеспечения более надежной перекрестной IDE и кросс-платформенной разработки.
Вы можете проверить это поведение с помощью простого упражнения.
- Добавьте новый файл класса (buildfail.cs) в ваш существующий проект (или
создать новый проект) в корневой папке проекта.
- Убедитесь, что файл buildfail.cs имеет то же пространство имен, что и другие исходные файлы в
проект, содержит ошибки компиляции и находится в корневом каталоге.
- Вы должны увидеть ошибки сборки в VS. Если вы не создаете вручную.
- Создайте новую папку (excludeme) у корня проекта и переместите
buildfail.cs в эту папку. У вас все еще есть ошибки сборки.
- Добавить excludeme в свойство exclude в project.json. Ошибки сборки должны быть удалены, поскольку builfail.cs больше не находится в пути поиска сборки.
Вам может быть интересно узнать, что использует VS, чтобы скрыть папку node_packages с экрана Solution Explorer. Я не уверен, и он не может быть настроен пользователем, но он не является свойством exclude. Комментируйте node_packages в project.json, и вы получите ошибки сборки (отказ восстановления пакета), но папка по-прежнему будет скрыта от Solution Explorer. Поскольку это специфическое поведение IDE, можно предположить, что, возможно, оно определено в файле projectname.xproj, но я не нашел такого свойства, поэтому в это время он выглядел бы черным ящиком VS.
Ответ 3
Начиная с Asp.Net 5 beta-8 и дополняя обновление оснастки для Visual Studio 2015, теперь вы можете исключить/скрыть папки из отображаемых в обозревателе решений. Более подробная информация об этом и другие изменения указаны в сообщении . Чтобы скрыть файл или папку, щелкните правой кнопкой мыши, чтобы открыть контекстное меню и выберите Hide from solution explorer
. Это создает запись в файле .xproj
:
<ItemGroup>
<DnxInvisibleContent Include="myhiddenfile.txt" />
</ItemGroup>
Обратите также внимание на то, что произошли изменения, когда по умолчанию установлены пакеты bower. Раньше шаблоны Asp.Net 5 в Visual Studio устанавливали пакеты bower в папку под названием bower_components
, обычную для веб-разработчиков, которые не используют Visual Studio. Однако, по-видимому, из-за путаницы с разработчиками, это было изменено на wwwroot/lib
. Это можно изменить, отредактировав файл bowerrc
. Таким образом, папка bower_components
не существует в новых шаблонах бета-8. Для получения дополнительной информации см. этот пост Скотта Хансельмана.
Ответ 4
Это может быть не идеально, но я смог скрыть папку из проводника решений в проекте Asp.net 5, пометив папку как скрытую в диалоговом окне свойств проводника Windows. У меня была папка .idea, используемая WebStorm, поэтому она была скрытой, не была слишком большой сделкой. WebStorm не против.
Кажется, что папка не будет скрыта, если она уже находится в проводнике решений. Пометьте его, и оно будет скрыто и временно перенесено из папки проекта. Убедитесь, что он исчез из браузера решений, прежде чем переместить его обратно. Он не должен возвращаться. Перезагрузка Visual Studio также может работать, я не тестировал это.
Ответ 5
Правильно или неправильно, вот что я сделал, чтобы получить bower_components
и .sass-cache
в сторону. В моем случае node_modules
как-то уже был исключен из моего проекта, хотя он был на том же уровне с gruntfile.js
. Я до сих пор не понимаю, почему с ним обращаются по-разному. Кто-нибудь знает?
Сначала я установил свое местоположение, как это, в файле .bowerrc
:
{
"directory": "../../artifacts/bower_components"
}
Затем я скорректировал свои пути по мере необходимости в gruntfile.js
Кроме того, чтобы получить sass-cache
папку в стороне, так как я использовал grunt-contrib-compass
, я сконфигурировал задачу компаса с помощью этой опции:
cacheDir: '../../artifacts/.sass-cache',
Существуют другие способы сделать это, если вы используете другие инструменты sass/compass.
РЕЗУЛЬТАТ:
- Теперь я могу искать весь проект для текста, а не получать хиты в своих библиотеках.
-
bower_components
и .sass-cache
находятся вне досягаемости источника.
Ответ 6
С помощью новейшей Visual Studio вам просто нужно щелкнуть правой кнопкой мыши папку/файл и выбрать "Скрыть из обозревателя решений".
Это изменит "xproj" следующим образом:
<ItemGroup>
<DnxInvisibleFolder Include="wwwroot\" />
</ItemGroup>