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

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


person SoftwareFactor    schedule 07.08.2015    source источник
comment
Возможный дубликат .vs \ config \ applicationhost.config в системе управления версиями   -  person Michael Freidgeim    schedule 21.03.2016
comment
@MichaelFreidgeim: Не уверен, другой вопрос касается конкретного файла, и это касается всей папки. Но бывает, что некоторые из более широких ответов подходят обоим.   -  person SoftwareFactor    schedule 21.03.2016


Ответы (3)


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

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

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

person Patrick Quirk    schedule 07.08.2015
comment
Это своего рода широкий ход, чтобы сказать, что не проверяйте всю папку. Если вашему веб-сайту требуются определенные конфигурации IIS Express (например, использование имени хоста для работы файлов cookie), проверка applicationhost.config помогает другим разработчикам в настройке своей среды, в противном случае каждый должен делать это самостоятельно, и они, вероятно, обнаружат, что это сложно. способ. - person Mrchief; 12.10.2015
comment
@Mrchief Я не разработчик IIS, но считаю, что этот ответ решает эту проблему. - person Patrick Quirk; 12.10.2015
comment
Этот ответ на самом деле не решение, а скорее обходной путь (на который ссылается сам ответ). Я пытался сказать, что двоичного ответа может быть недостаточно для всех. В зависимости от ваших настроек вам может потребоваться исключить папку, но затем добавить исключение для файла applicationhost.config или чего-то подобного. - person Mrchief; 12.10.2015
comment
@Mrchief: На самом деле это не обходной путь, это лучшее решение. Я не думаю, что вам нужно когда-либо проверять папку .vs, это не предназначено для этого. - person D.R.; 11.01.2016
comment
@ D.R. Готов поспорить, молотки не предназначены для раскалывания кокосов, но они также могут решить проблему. - person Alex; 09.03.2016
comment
Как говорится в цитируемом ответе lugberk: сегодня нет способа сказать проектам ASP.NET 5 искать это. Из-за этого я не вижу другой возможности поделиться этими параметрами конфигурации IIS Express между проектами ASP.NET 5, кроме проверки файла applicationhost.config в .vs. Или вы видите какое-нибудь другое / лучшее решение? - person Gustin; 23.05.2016
comment
@Gustin - ничто не мешает вам временно разрешить регистрацию файла, а затем добавить его в gitignore. Git все равно загрузит файл, но изменения будут проигнорированы. Я не могу придумать сценарий, в котором вам нужно было бы регулярно менять этот файл. - person Spencer Ruport; 15.09.2016
comment
Исключение папки .vs также исключает файл .suo, который включает все настроенные вами конфигурации запуска. Это распространенный сценарий, когда вы хотите добавить к своему приложению «белую метку» и решили не использовать для этой цели несколько проектов. - person Joris Weimar; 01.11.2017
comment
голосовая связь пользователя теперь мертва :-( - person escape-llc; 02.08.2019
comment
@SpencerRuport - не имеет значения, находится ли он в .gitignore до, после или вообще нет. Вы можете принудительно выполнить проверку в соответствии с ответом Джима Вольффа ниже, если он находится в gitignore, и если вы отметили его, тот факт, что он находится в .gitignore, не имеет значения, git все еще будет замечать чейнджеры и проверять их, например, git добавить -u. Чтобы исправить это, вы можете использовать git --skip-worktree, как этот ответ stackoverflow.com/a/13631525/8088084 - person Mic; 08.01.2020

Github предоставляет множество шаблонов .gitignore. В своем шаблоне для Visual Studio они проигнорировали папку .vs. Фрагмент из шаблона на github.

# Visual Studio 2015 cache/options directory
.vs/
person crea1    schedule 07.08.2015
comment
Это может помочь кому-то принять решение (лениво), но не дает убедительных советов или каких-либо причин для этого. Заголовок (каталог кешей / опций Visual Studio 2015) больше помогает в принятии решения. - person Mohammad Dehghan; 27.11.2016
comment
Кстати, такая же строчка относится и к .hgignore - person Charles Burns; 26.07.2018

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

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

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

.vs/

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

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

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

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

person Jim Wolff    schedule 26.10.2016
comment
Я хотел бы добавить, что если вы используете TFS, вы можете использовать префикс отрицания в вашем файле .tfignore, чтобы повторно включить файл applicationhost.config после исключения папки .vs. Файл .tfignore по умолчанию объясняет это так:! префикс отменяет шаблон. Это можно использовать для повторного включения элемента после того, как он был исключен файлом .tfignore выше в дереве или глобальным списком исключений Коллекции командного проекта. - person Aaron; 02.01.2018