Должен ли я добавить папку Visual Studio 2015.vs в систему контроля версий?

321

Visual Studio 2015 создает новую папку с именем «.vs». Какова цель этого и я должен добавить его в систему контроля версий?

SoftwareFactor
источник
Возможный дубликат .vs \ config \ applicationhost.config в управлении исходным кодом
Майкл Фрейдгейм
2
@MichaelFreidgeim: Не уверен, другой вопрос касается конкретного файла, и это касается всей папки. Но бывает так, что некоторые из более широких ответов соответствуют обоим.
SoftwareFactor

Ответы:

338

Нет, вы не должны добавлять его в систему контроля версий. Цель этой папки - переместить файлы, относящиеся к компьютеру и пользователю, в центральное место. Объяснение проблемы пользовательского голоса в Visual Studio объясняет это хорошо:

Пока что мы переместили файл .SUO и файлы базы данных IntelliSense компилятора VB / C # в новое место. Все новые, специфичные для проекта, локальные файлы машины также будут добавлены в новое местоположение. Мы планируем пойти еще дальше в будущих выпусках и исследуем, как улучшить структуру каталогов выходных данных сборки и других существующих файлов, которые могут загромождать дерево исходных текстов.

Это все файлы, которые вы никогда бы не зарегистрировали, так как они генерируются из сборки или содержат специфическую для компьютера информацию.

Патрик Квирк
источник
23
Это своего рода широкий штрих, чтобы сказать, не регистрируйте всю папку. Если вашему веб-сайту требуются определенные applicationhost.configнастройки IIS Express (например, использование имени хоста для файлов cookie для работы), проверка помогает другим разработчикам в настройке их среды, в противном случае каждый из них должен сделать это самостоятельно, и они, вероятно, найдут это трудным путем. ,
Mrchief
3
@Mrchief Я не разработчик IIS, но я считаю, что этот ответ на этот адрес.
Патрик Квирк
2
Этот ответ на самом деле не является решением, это скорее обходной путь (на который ссылается сам ответ). Я пытался сказать, что двоичного ответа может быть недостаточно для всех. В зависимости от настроек, вам, возможно, придется исключить папку, но затем добавить исключение для applicationhost.configфайла или что-то подобное.
Mrchief
3
@Mrchief: На самом деле это не обходной путь, это лучшее решение. Я не думаю, что вы должны когда-либо проверять папку .vs, она не предназначена для этого.
DR
6
Как отмечается в цитируемом ответе Лугберка: «Нет способа заставить проекты ASP.NET 5 искать это сегодня». Из-за этого я не вижу другого варианта для совместного использования этих параметров конфигурации IIS Express между проектами ASP.NET 5, кроме проверки в файле applicationhost.config в .vs. Или вы видите другое / лучшее решение?
Гастин
86

Github предоставляет множество шаблонов .gitignore. В своем шаблоне для visual studio они проигнорировали папку .vs. Отрывок из шаблона на github .

# Visual Studio 2015 cache/options directory
.vs/
crea1
источник
3
Это может помочь кому-то решить (лениво), но не дает сильных советов или причин для этого. Заголовок («Каталог кэша / опций Visual Studio 2015») помогает при принятии решения.
Мохаммад Дегхан
Кстати, та же самая линия относится к .hgignore
Чарльз Бернс
23

Как описано в цитате из uservoice в ответе Патрика, папка не предназначена для контроля версий.

Однако, как отмечают комментарии, могут быть случаи, когда вы захотите включить определенные файлы из папки.

Я бы добавил это в .gitignore:

.vs/

А затем используйте любой инструмент git, который вы предпочитаете, чтобы добавить определенные файлы, такие как общая конфигурация applicationhost.config, если это необходимо.

Или используйте команду git, например:

git add -f .vs/config/applicationhost.config

Таким образом, git добавляет файл, даже если он игнорируется.

Джим вольф
источник
3
Я хотел бы добавить, что если вы используете TFS, вы можете использовать префикс отрицания в вашем файле .tfignore для «повторного включения» файла applicationhost.config после исключения папки .vs. Файл .tfignore по умолчанию объясняет это так: «Префикс! Отменяет шаблон. Это можно использовать для повторного включения элемента после того, как он был исключен файлом .tfignore выше в дереве, или глобальными исключениями из Team Project Collection. список."
Аарон