Czy powinienem dodać folder .vs programu Visual Studio 2015 do kontroli źródła?

321

Visual Studio 2015 tworzy nowy folder o nazwie „.vs”. Jaki jest jej cel i czy powinienem dodać go do kontroli źródła?

SoftwareFactor
źródło
2
@MichaelFreidgeim: Nie jestem pewien, drugie pytanie dotyczy konkretnego pliku i dotyczy całego folderu. Ale zdarza się, że niektóre z szerszych odpowiedzi pasują do obu.
SoftwareFactor

Odpowiedzi:

338

Nie, nie powinieneś dodawać go do kontroli źródła. Celem tego folderu jest przeniesienie plików specyficznych dla maszyny i użytkownika do centralnej lokalizacji. Wyjaśnienie dotyczące problemu Visual User User Voice dobrze to wyjaśnia:

Do tej pory przenieśliśmy plik .SUO i pliki bazy danych kompilatora IntelliSense VB / C # do nowej lokalizacji. Wszystkie nowe lokalne pliki specyficzne dla projektu zostaną również dodane do nowej lokalizacji. Planujemy pójść jeszcze dalej w przyszłych wydaniach i badamy, jak ulepszyć strukturę katalogów wyników kompilacji i innych istniejących plików, które mogą zagracać drzewo źródłowe.

Są to wszystkie pliki, których nigdy nie zarejestrujesz, ponieważ są generowane z kompilacji lub zawierają informacje specyficzne dla komputera.

Patrick Quirk
źródło
23
To rodzaj szerokiego pociągnięcia, by powiedzieć, że nie melduj się w całym folderze. Jeśli witryna wymaga określonych konfiguracji usług IIS Express (takich jak używanie nazwy hosta do obsługi plików cookie), sprawdzanie applicationhost.configpomaga innym programistom w konfigurowaniu środowiska, w przeciwnym razie każdy musi to zrobić samodzielnie i prawdopodobnie znajdzie to na własnej skórze .
Mrchief,
3
@Mrchief Nie jestem programistą IIS, ale wierzę, że ta odpowiedź rozwiązuje ten problem.
Patrick Quirk
2
Ta odpowiedź naprawdę nie jest rozwiązaniem, a raczej obejściem (do którego sama nawiązuje sama odpowiedź). Próbowałem powiedzieć, że odpowiedź binarna może nie wystarczyć wszystkim. W zależności od konfiguracji może być konieczne wykluczenie folderu, ale następnie dodanie wyjątku dla applicationhost.configpliku lub coś w tym kierunku.
Mrchief,
3
@Mrchief: Właściwie to nie jest obejście, to najlepsze rozwiązanie. Nie sądzę, że powinieneś kiedykolwiek zameldować się w folderze .vs, tak nie jest.
DR
6
Jak podaje cytowana odpowiedź Lugberka: „nie ma sposobu, aby powiedzieć projektom ASP.NET 5, aby tego dzisiaj szukały”. Z tego powodu nie widzę żadnej innej opcji udostępniania tych ustawień konfiguracji IIS Express między projektami ASP.NET 5 niż sprawdzenie pliku applicationhost.config w .vs. Czy widzisz jakieś inne / lepsze rozwiązanie?
Gustin
86

Github zapewnia wiele szablonów .gitignore. W swoim szablonie dla visual studio zignorowali folder .vs. Fragment z szablonu na github .

# Visual Studio 2015 cache/options directory
.vs/
crea1
źródło
3
To może pomóc komuś zdecydować (leniwie), ale nie daje mocnej porady ani żadnego powodu, aby to zrobić. Tytuł („Katalog pamięci podręcznej / opcji programu Visual Studio 2015”) pomaga w podejmowaniu decyzji.
Mohammad Dehghan
Nawiasem mówiąc, ta sama linia dotyczy .hgignore
Charles Burns
23

Jak opisano w cytacie wziętym z faktury użytkownika w odpowiedzi Patricka, folder nie jest przeznaczony do kontroli źródła.

Jednak jak wskazują również komentarze, mogą istnieć przypadki, w których chciałbyś dołączyć określone pliki z folderu.

Dodałbym to do .gitignore:

.vs/

A następnie w razie potrzeby użyj dowolnego narzędzia git, aby dodać określone pliki, takie jak wspólna konfiguracja pliku applicationhost.config.

Lub użyj polecenia git takiego:

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

W ten sposób git dodaje plik, nawet jeśli zostanie zignorowany.

Jim Wolff
źródło
3
Chciałbym dodać, że jeśli używasz TFS, możesz użyć przedrostka negacji w pliku .tfignore, aby „ponownie dołączyć” plik applicationhost.config po wykluczeniu folderu .vs. Domyślny plik .tfignore wyjaśnia to w następujący sposób: „Przedrostek! Neguje wzorzec. Można go użyć do ponownego włączenia elementu po tym, jak został wykluczony przez plik .tfignore wyżej w drzewie lub przez globalne wyłączenia Team Project Collection lista."
Aaron