исключить папку в проекте.формат JSON

в новом asp.net 5 шаблон есть проект.JSON в котором вы можете исключить определенные каталоги.

"exclude": [
    "wwwroot",
    "node_modules",
    "bower_components",
    "dist",
    ".tmp"
]

Как вы можете видеть, я добавил несколько папок, таких как "dist " и".tmp', но они все еще включены в Обозреватель решений. Документов об этом немного. Как exculde файлов/папок из проекта в VS 2015?

6 ответов


свойство "exclude "не скрывает папку из visual studio, оно не заставит папку" исчезнуть " из Обозревателя решений.

свойство "exclude" удаляет папку из пути поиска компиляции. это инструкция компилятору (Roslyn), а не IDE. Как более полный ответ "проект.json " намеренно является агностиком IDE. Именно поэтому есть и projecname.xspoj и проект.json, которые оба содержат конфигурацию проекта информация. Это необходимо для обеспечения более надежной кросс-IDE и кросс-платформенной разработки.

вы можете проверить это сами с помощью простого упражнения.

  1. Добавить новый файл класса (buildfail.cs) к существующему проекту (или создать новый проект) в корневой папке проекта.
  2. обеспечить buildfail.CS имеет то же пространство имен, что и другие исходные файлы в project, содержит ошибки компиляции и находится в корне справочник.
  3. вы должны увидеть ошибки сборки в VS. Если вы не создаете вручную.
  4. создать новую папку (excludeme) из корня проекта и переместить buildfail.cs в эту папку. У вас все равно должны быть ошибки сборки.
  5. добавить excludeme в свойство exclude в проекте.формат JSON. Ошибки build должны быть удалены, потому что builfail.cs больше не находится в пути поиска сборки.

вам может быть интересно, что VS использует, чтобы знать, чтобы скрыть папка node_packages на дисплее обозревателя решений. Я не уверен, и он не может быть пользователем, но не исключить собственность. Комментировать node_packages в проекте.json и вы получите ошибки сборки (сбой восстановления пакета), но папка все равно будет скрыта от обозревателя решений. Поскольку это специфическое поведение IDE, можно предположить, что, возможно, оно определено в projectname.xproj, но я не нашел такого свойства, поэтому в это время это будет магия черного ящика VS.


по состоянию на Asp.Net 5 бета-8 и дополнительное обновление инструментов для Visual Studio 2015 теперь можно исключить / скрыть папки из отображения в обозревателе решений. Более подробная информация об этом и других изменениях приведена в разделе анонс поста. Чтобы скрыть файл или папку, щелкните правой кнопкой мыши контекстное меню и выберите Hide from solution explorer. Это создает запись в :

<ItemGroup>
  <DnxInvisibleContent Include="myhiddenfile.txt" />
</ItemGroup>

обратите внимание также, что произошло изменение где пакеты bower устанавливаются по умолчанию. Ранее Asp.Net 5 шаблоны в Visual Studio установят пакеты bower в папку с именем bower_components, практика, знакомая веб-разработчикам, которые не используют Visual Studio. Однако, по-видимому, из-за путаницы разработчиков, это было изменено на wwwroot/lib. Это можно изменить, отредактировав . Таким образом,bower_components папка не существует в новых шаблонах beta-8. Пожалуйста, смотрите этот пост Скотт Хансельман для более информация.


Это может быть не идеально, но я смог скрыть папку из Обозревателя решений в Asp.net 5 проект, пометив папку как скрытую в диалоговом окне свойств проводника windows. У меня было.папка идеи, используемая WebStorm, появляется, поэтому ее скрытие не было слишком большим делом. WebStorm не возражает.

кажется, что папка не будет скрыта, если она уже в обозревателе решений. Отметьте его, и его содержимое скрыто и временно переместите его из папки проекта. Делать конечно, он исчезает из Обозревателя решений, прежде чем переместить его обратно. Он не должен появляться. Перезапуск Visual Studio также может работать, я не тестировал это.


правильно или неправильно, вот что я сделал, чтобы получить bower_components и .sass-cache С дороги. В моем случае, node_modules был уже исключен из моего проекта как-то, хотя он находится на одном уровне с gruntfile.js. Я до сих пор не понимаю, почему к нему относятся по-другому. Кто-нибудь знает?

во-первых, я установил свое местоположение так в :

{
  "directory": "../../artifacts/bower_components"
}

затем я скорректировал свои пути по мере необходимости в моем gruntfile.js

, чтобы получить sass-cache папка из кстати, так как я использовал grunt-contrib-compass, Я настроил свою задачу компаса с этой опцией:

  cacheDir: '../../artifacts/.sass-cache',

есть и другие способы сделать это, если вы используете другие инструменты Sass / compass.

результат:

  • теперь я могу искать весь свой проект для текста и не получать хиты в моих библиотеках.
  • bower_components и .sass-cache находятся вне досягаемости системы управления версиями.

С последней Visual Studio вам просто нужно щелкнуть правой кнопкой мыши папку / файл и выбрать "скрыть из Обозревателя решений".

это изменит "xproj" таким образом:

<ItemGroup>
    <DnxInvisibleFolder Include="wwwroot\" />
</ItemGroup>

глядя на состояние asp.net 5 с visual studio 2015 я могу только сказать, что они сделали гораздо более сложной и неудобной работу с бегунами задач, такими как gulp или grunt. Поскольку я использую Web API 2 для управления данными, я переключился на Visual Studio Code с bower, gulp и browsersync, и это оказалось намного проще и быстрее с гораздо меньшим беспорядком.

чтобы создать шаблон запуска:https://github.com/Swiip/generator-gulp-angular

теперь вы можете использовать любой редактор,и вы получите четкое разделение передней и задней разработки. Кроме того, вы узнаете gulp и bower и (минимальный) материал командной строки, который VS2015 пытается сделать для вас (и не делает так много раз).

О да: вам больше не нужно исключать папки, так как шаблон имеет гораздо более разумную структуру папок