Plik projektu został przeniesiony, zmieniono jego nazwę lub nie ma go na komputerze

150

Otrzymuję ten błąd, gdy próbuję załadować projekt VS 2008 z kontroli źródła TFS:

Plik projektu został przeniesiony, zmieniono jego nazwę lub nie ma go na komputerze

Po kliknięciu OK projekt mówi „niedostępny”. Jaki jest problem? Jak mam to rozwiązać? Nigdy wcześniej nie miałem tego problemu. Niektóre blogi mówią o usunięciu pliku .suo, ale nie mogę znaleźć pliku .suo. Usunąłem cały projekt na moim komputerze lokalnym, więc przy następnym otwarciu utworzy nowy, ale nadal pojawia się ten sam błąd.

sinus
źródło
28
Och, jak ja nienawidzę TFS za przyprawianie mnie o te bóle głowy!
John Leidegren,
2
Zejdź na dół, tutaj znajdziesz poprawną odpowiedź.
Claudius

Odpowiedzi:

270

Zwykle pomaga to w usunięciu opcji użytkownika rozwiązania, czyli „SUO”.

VS do 2013 roku

W starszym VS jest przechowywany jako „ukryty” SolutionName.suow tym samym folderze co .slnplik główny .

VS2015 lub nowszy

W VS2015 te same dane zostały przeniesione do „ukrytego” .vsfolderu w tym samym folderze co .slnplik główny .

Stanley Goldman
źródło
6
+1. Bardzo niefortunny komunikat o błędzie - to rzeczywiście najbardziej prawdopodobne, aby pojawić się, kiedy już przeniósł pliki „prawidłowy” sposób, w zależności od dostawcy SCC. (np. użycie „tf rename” dla TFS) Przeniesienie projektu na dysk bez informowania TFS lub zapomnienie o zaktualizowaniu pliku sln / csproj spowoduje, z mojego doświadczenia, różne komunikaty o błędach. Pliki SUO są nieprzezroczyste, więc pozostajesz drapiąc się po głowie, dopóki nie wykonasz tfpt treeclean / scorch.
Richard Berg
8
To ratuje mój dzień;)
Kamil Lach
44
Nie zapomnij o ponownym uruchomieniu programu Visual Studio po usunięciu pliku
suo
8
O. Więc teraz plik .suo jest ukryty. Czemu? Och, wiem dlaczego. Jesteśmy programistami i oczywiście nie jesteśmy w stanie poradzić sobie z dodatkową złożonością, widząc plik .suo otwarty ;-)
Torben Rahbek Koch,
29
Działa to również w programie Visual Studio 2015, chociaż ścieżka do pliku suo została zmieniona na <SolutionFolder> \ .vs \ <SolutionName> \ v14 \ .suo.
Greg M.
38

Właśnie napotkałem ten problem przy użyciu VS 2013 po zmianie nazwy projektu. Odpowiedź Stanleya doprowadziła mnie do rozwiązania:

Zamknij VS - usuń plik .suo - uruchom ponownie VS.

AndreasV
źródło
1
Mogę się mylić, ale wydaje mi się, że nawet nie widziałem pliku .SUO, dopóki nie zamknąłem VisualStudio.
Michael R
5
Chcę tylko dodać - koniecznie zamknij VS przed usunięciem. Usunięcie pliku, gdy VS jest nadal otwarty, a następnie zamknięcie i ponowne otwarcie NIE ma wpływu. Najpierw trzeba zamknąć!
wizloc
23

Usuń plik .suo w specjalny sposób.

  1. Nie otwieraj rozwiązania po usunięciu ukrytego pliku .suo.
  2. Uruchom ponownie VisualStudio.
  3. Otwórz rozwiązanie i dodaj projekt bez komunikatu o błędzie.
Mikhael Loo
źródło
Pracował dla mnie Visual Studio 2019. Tylko, że usuniesz ukryty .vsfolder
user919426
11

TFS działa jak większość pakietów kontroli źródła: zapamiętuje to, co umieścił na komputerze, więc kiedy „Pobierz najnowsze” musi pobrać tylko zmiany od ostatniego „Pobierz”, zamiast pobierać absolutnie wszystko.

Ma to jedno zastrzeżenie: jeśli usuniesz lub zmienisz nazwę lokalnych plików na dysku, TFS nie będzie wiedział, że to zrobiłeś, i nadal będzie uważał, że są tam, gdzie je zostawił.

Jeśli następnie „Pobierz najnowsze”, nie będzie kłopotać się aktualizowaniem brakujących plików.

Wtedy prawdopodobnie pojawią się wszelkiego rodzaju błędy związane z „brakującymi plikami”, pochodzące z TFS i innych narzędzi, które wyszukują pliki.

Aby to obejść, musisz:

  • Jeśli uważasz, że możesz mieć tam jakieś zmiany, których nie chcesz stracić, skopiuj folder źródłowy na swoim komputerze jako kopię zapasową na wszelki wypadek!
  • Kliknij prawym przyciskiem myszy projekt (w Eksploratorze rozwiązań) lub folder (w kontroli źródła)
  • Z menu kontekstowego wybierz opcję „Pobierz określoną wersję”
  • Wybierz opcję „Najnowsza wersja” i zaznacz opcję, która mówi (coś w rodzaju) „wymuś pobranie plików znajdujących się już w Twoim obszarze roboczym”, co oznacza, że ​​TFS ma zapomnieć o tym, co „wie” i mimo to pobrać wszystkie pliki ponownie.

Jeśli masz jakieś pliki zmienione lokalnie (do zapisu), zachowaj ostrożność. Istnieje druga opcja, która nadpisze je, tracąc zmiany. Ale masz kopię zapasową, więc powinieneś być bezpieczny. Ogólnie lepiej jest zaznaczyć również tę opcję, aby upewnić się, że cały kod źródłowy jest całkowicie aktualny. (Ale oczywiście tylko wtedy, gdy nie masz nic przeciwko utracie lokalnych zmian!)

Gdy wszystko w porządku, spowoduje to wymuszenie przeniesienia wszystkich plików projektu na dysk lokalny i powinno rozwiązać problem.

Jason Williams
źródło
zrobiłem "dostałem konkretną wersję" i zaznaczyłem "nadpisz wszystkie pliki, nawet jeśli lokalny serwer dopasowania". żadnych błędów, ale nic nie przyszło. Sprawdziłem z innego komputera i projekt jest w TFS i druga osoba może na nim dobrze pracować.
sinus
BTW, mój lokalny folder źródłowy jest całkowicie PUSTY. Nic w tym nie ma. Początkowo usunąłem wszystkie pliki, aby uzyskać wszystkie nowe. jak otwieranie zupełnie nowego projektu.
sinus
1
W takim przypadku następną rzeczą, którą sprawdzę, będzie mapowanie obszaru roboczego. W Team Explorer kliknij dwukrotnie ikonę Kontrola źródła, a u góry wyświetlonego okna znajduje się rozwijane pole kombi. Upuść to i wybierz „dodaj / edytuj obszary robocze”. Edytuj swój obszar roboczy i sprawdź, czy projekt TFS zawierający kod ma odpowiedni folder na lokalnym dysku twardym. I upewnij się, że patrzysz na ten folder, gdy próbujesz załadować rozwiązanie. (Podpowiedź: porównaj swoją konfigurację z innym programistą, który stara się znaleźć źródło problemu)
Jason Williams
9

Chociaż jest to dobrze znana wada VS, na pewno sobie z tym poradzimy!

  • Otwórz plik rozwiązania w trybie edycji

  • Zmodyfikuj ścieżkę względną, aby była zgodna ze zmodyfikowaną / przeniesioną ścieżką fizyczną.

    SccProjectUniqueName1 = Source\\Order\\Order.csproj
    SccProjectName1 = Order.ApplicationService
    SccLocalPath1 = Order.ApplicationService
    
  • Ponadto należy zadbać o prawidłową ścieżkę względną dla projektów odsyłających

    Project("{asdasd-301F-11D3-BF4B-asdasd}") = "Order",
            "Source\Order\Order.csproj", "{E25641BC-C990-40E2-8876-08AE8728F763}"
    EndProject
    
sandeep talabathula
źródło
6

Spróbuj otworzyć plik .csproj lub .vbproj zamiast .sln. Prawdopodobnie zdarzyło się, że plik .sln (rozwiązanie) ma bezwzględne odniesienie do pliku (zamiast względnej ścieżki) do projektu (-ów) komponentu. Konieczne może być ponowne utworzenie .sln lub ręczna edycja.

Lilith River
źródło
Próbowałem otworzyć plik .vbproj i oto, co otrzymuję. „Wybrany plik nie może zostać otwarty jako rozwiązanie lub projekt. Proszę wybrać plik rozwiązania lub plik projektu”, proszę również podać, jak odtworzyć plik .sln. Jestem w tym nowy. dzięki
sineas
Dzięki! Otworzył pliki csproj, przy wyjściu poprosił o utworzenie / zapisanie nowego pliku .sln i nadpisanie starego!
Rafael
5

Najłatwiejsza opcja, jaka została dla mnie wypracowana to:

  1. Kliknij projekt prawym przyciskiem myszy i usuń projekt „nie załadowany” lub „niedostępny”
  2. Kliknij prawym przyciskiem myszy rozwiązanie i dodaj „Istniejący projekt”
Arun Vinoth
źródło
Próbowałem tego, ale wciąż ten sam błąd, nie mogę znieść tego głupiego błędu (naprawdę błąd, nie mogę zaakceptować tego rodzaju paskudnego błędu, bardzo zagmatwany).
Beznadziejny
1
Proste i proste ... rozumiem.
Sarath Mohandas
3

W moim przypadku usunięcie pliku .suo było niewystarczające. Odkryłem, że konfiguracja mojego obszaru roboczego zawiera błąd. Odkryłem i rozwiązałem problem, wykonując następujące czynności:

  1. W programie Team Explorer „Zarządzaj obszarami roboczymi ...”

    wprowadź opis obrazu tutaj

  2. Kliknij „Edytuj ...”

    wprowadź opis obrazu tutaj

  3. Popraw wartość w polu „Folder lokalny”

    wprowadź opis obrazu tutaj

  4. Na koniec usuń odpowiednie pliki .suo zgodnie z zaakceptowaną odpowiedzią.

Chris Schiffhauer
źródło
2

Najłatwiej było utworzyć nowy plik SLN rozwiązania.

David
źródło
1

Wyczyść mapowania obszaru roboczego (Plik -> Kontrola źródła -> Obszary robocze). Edytuj obszar roboczy i wyczyść wszystkie mapowania (więcej reperkusji) lub znajdź to, które jest powiązane z tą ścieżką serwera. Następnie otwórz Eksplorator kontroli źródła i zmień mapę. Kliknij dwukrotnie SLN w Eksploratorze kontroli źródła, a powinien być najnowszy. Nie do końca jestem pewien, co się stało lub w jaki stan udało ci się wejść, ale dzięki temu znowu się ruszysz.

Ryan Cromwell
źródło
1

Napotkałem ten problem i udało mi się go rozwiązać, pobierając .rptprojpliki od współpracownika i kopiując je do mojego katalogu lokalnego. Projekt był następnie w stanie ponownie załadować.

Sayward
źródło
1

Spędziłem dużo czasu, próbując rozwiązać ten problem. Zrobiłem następujące kroki: zmień nazwę projektu, zmień nazwy przestrzeni nazw, zmień nazwę folderu projektu, edytuj plik .sln, edytuj ukryty plik .suo. Projekt został załadowany, ale był nierozpoznawalny dla TFS! Wreszcie znalazłem ten przewodnik .

Jeśli używasz Resharper i TFVC to kontrola wersji, wykonaj następujące kroki:

  • Kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań, wybierz opcję Zmień nazwę i wprowadź nową nazwę

  • Ponownie kliknij projekt prawym przyciskiem myszy i wybierz opcję Właściwości. Zmień „Nazwa zestawu” i „Domyślna przestrzeń nazw” na karcie Aplikacja.

  • Ponownie kliknij projekt prawym przyciskiem myszy i wybierz Refaktoryzuj -> Dopasuj przestrzenie nazw. Zaakceptuj zmiany.

  • Zmień AssemblyTitle i AssemblyProduct we Properties / AssemblyInfo.cs

  • Usuń katalogi bin i obj w Eksploratorze Windows

  • Otwórz Eksplorator kontroli źródła i zmień nazwę katalogu projektu. To zamknie rozwiązanie. Niech się zamknie.

  • Otwórz plik SLN (za pomocą edytora tekstu, takiego jak Notepad ++) i zmień ścieżkę do projektu (powinno być wiele miejsc).

  • Otwórz rozwiązanie ponownie. Wyczyść i odbuduj projekt.

ABS
źródło
0

Kliknij prawym przyciskiem myszy niedostępny projekt i edytuj plik projektu ... prawdopodobnie znajdziesz zakodowaną na stałe ścieżkę do pliku lub wirtualną, która nie pasuje do miejsca, w którym sprawdziłeś projekt.

Życzliwość,

Dan

Daniel Elliott
źródło
2
nie mają opcji Edytuj. jego jedyny projekt przeładowania, wytnij i usuń.
sinus
0

Rozwiązanie tego problemu

  1. Ponownie zmień nazwę folderu projektu
  2. Ustaw określoną wersję i siłę, aby uzyskać w TFS
  3. usuń opcję tylko do odczytu i ukrytą w najnowszym folderze (bez zmiany nazwy)
  4. Teraz możesz bez problemu otworzyć projekt
Saman Jayatilake
źródło
0

Czasami, nawet jeśli zmienił .slni .csprojścieżka, i ręcznie zmienić nazwę, można zapomnieć, aby sprawdzić nazwę folderu, który zawiera projekt.

SMPH
źródło