2012-07-02 30 views
5

Używam Visual Studio 2010 SP1 z Team Foundation Server 2010. Ilekroć otwieram projekt, Visual Studio automatycznie sprawdza plik projektu (.csproj) (nie ma żadnych plików podrzędnych, jednak) i odpowiedni plik .csproj.vspscc.Visual Studio 2010 i TFS niechciane wymeldowanie

Ilekroć porównuję plik projektu na mojej liście oczekujących zmian, oznacza to, że pliki są identyczne zarówno dla pliku .csproj, jak i pliku .csproj.vspscc - po prostu sprawdzamy je z powrotem lub cofamy zmiany.

Czy ktoś może wyjaśnić, dlaczego to robi i jak można go naprawić, aby nie sprawdzał plików .csproj i .vspscc przy każdym otwarciu projektu?

+0

Nienawidzę zintegrowanej kontroli źródła. –

+0

Z jakiegoś niezrozumiałego dla mnie powodu, vs2010 zwykle zachowuje wszystkie zmiany w konfiguracji rozwiązania/projektu w pamięci I vs2010 nie będzie zapisywać ich na dysku, dopóki wyraźnie nie poprosisz o zrobienie tego przez wyzwolenie _Zapisz wszystko_ lub zamknij projekt. W ten sposób łatwo jest wyobrazić sobie sytuację, gdy aktualizujesz z kontroli źródła i tracisz wszystkie zmiany w pamięci. Może to być zachowanie wymagane do wcześniejszego pobrania plików projektów. To tylko moja osobista opinia oparta na współpracy z vs2010. – Akim

+0

możliwy duplikat [Jak zatrzymać Visual Studio od "zawsze" sprawdzania plików rozwiązania?] (Http://stackoverflow.com/questions/1085978/how-to-stop-visual-studio-from-always-checking-out -solution-files) – LosManos

Odpowiedz

2

W moim zespole wystąpił ten sam problem. Problem polegał na tym, że jedno odniesienie projektu wskazywało na inny (niewłaściwy) katalog jednego z obszarów roboczych członka naszego zespołu. Rozwiązanie pantelif idzie w dobrym kierunku, ale porównywanie plików csproj z TFS nie pomoże. Z jakiegoś powodu mówi się, że pliki są identyczne, ale gdybym je obejrzał, zdałem sobie sprawę, że tak nie jest. Można łatwo sprawdzić:

  • Kliknij prawym przyciskiem myszy na projekcie
  • Wybierz "Unload Projektu"
  • Prawo kliknij ponownie
  • wybierz "Edit xxx.csproj"

Teraz mają głębsze spojrzenie na "ProjectReference" - Tagi. W moim przypadku "Atrybuty" - Atrybuty nie były identyczne. Mam nadzieję, że to ci pomoże.

Aby uniknąć takich problemów, wystarczy spojrzeć na TFSGuide, zwłaszcza w rozdziale 3.

0

Nie jest dokładnie wiadomo, jakie kroki podejmuje się, aby problem wystąpił, ale zakładam, że masz na myśli, że dzieje się to w taki sposób, że po otwarciu rozwiązania wszystkie pliki projektu w rozwiązaniu są automatycznie wszystkie wyrejestrowany.

To nie jest normalne zachowanie, więc możesz mieć narzędzie innej firmy, które wykonuje akcje na plikach projektu; może to je edytuje, a następnie odkłada z powrotem w ten sam sposób. Sprawdź i wyłącz wszystkie dodatki (menu Narzędzia -> Menedżer Ad-In), a także sprawdź, jakie inne rozszerzenie możesz zainstalować za pomocą Menedżera rozszerzeń (również w menu narzędzi).

+0

Kiedy robię porównanie, oznacza to, że pliki są identyczne. Dlaczego tak jestem tym zaskoczony. – Sean

+0

@Sean Możliwe, że istnieje więcej niż 1 plik tworzący "projekt" występujący w VS. Czy masz jakieś pliki konfiguracyjne "user", które są kontrolowane przez źródło (np. * .csproj.user, * .suo, lub * .csproj.webinfo)? Powinny one zostać wyłączone z kontroli źródła. Ponadto, czy znalazłeś jakiekolwiek załadowane dodatki lub rozszerzenia, które mogą wpływać na zachowanie VS? Wreszcie, jakie są typy/szablony projektów używane do tworzenia projektów w twoim rozwiązaniu; Czy to mieszanka standardowych szablonów? –

+0

Tylko plik projektu .csproj jest sprawdzany w źródle. Mam zainstalowane rozszerzenia innych firm, ale współpracownicy mają te same problemy (i nie mają zainstalowanych tych samych rozszerzeń). Są to standardowe szablony projektów, nic niezwykłego. – Sean

0

VS prawdopodobnie rozwiązuje problem z łączeniem, zwykle dla zespołu referencyjnego.
Aby sprawdzić, co się dzieje, po prostu otwórz swoje rozwiązanie &, gdy VS wyewidencjonuje * .csproj, "zapisz wszystko" (Ctrl + Shift + S).
Przejście do okna "Oczekujące zmiany" i porównanie * .csproj powinno ujawnić problem.

+3

Kiedy dokonuję porównania, oznacza to, że pliki są identyczne. Dlaczego tak jestem tym zaskoczony. – Sean

1

mogę odpowiedzieć na część tego pytania. Dlaczego pliki są identyczne?

Powodem tego (o ile wiem) jest to, że gdy automatycznie sprawdza plik i wprowadza zmianę, to nie zapisuje tej zmiany. Dlatego, gdy po prostu porównasz pliki od razu, nie znajdzie żadnych różnic. Jeśli zamiast tego tworzysz projekt lub ręcznie wywołujesz zapis na zmodyfikowanych plikach, pojawią się zmiany.

0

Ten sam problem również pojawił się w przypadku mojego rozwiązania, później dowiedziałem się, że IIS, który skonfigurowałem w moim lokalnym ma inną nazwę VD, gdzie jak na serwerze TFS, przydzielono i zarejestrowano inną nazwę VD. Otwieram moje rozwiązanie, automatycznie sprawdza plik .sln. ponieważ mój lokalny VD jest inny, przyporządkowany do mojego lokalnego.