Исключить папку в 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>