Ostrzeżenie programu Visual Studio: „Nie można odczytać niektórych właściwości skojarzonych z rozwiązaniem”

160

Kiedy otwieram moje rozwiązanie, pojawia się okno dialogowe z tym ostrzeżeniem. Rozwiązanie (jedna aplikacja internetowa, jeden projekt klasy) kompiluje się bez błędów.

Jak mogę określić, które właściwości powodują problem i rozwiązać problem?

chris
źródło

Odpowiedzi:

281

Właśnie naprawiłem podobny problem z rozwiązaniem VS2010 z 35 projektami ... Przyczyna była powielona

GlobalSection(TeamFoundationVersionControl)

sekcji w pliku rozwiązania. Zamknąłem rozwiązanie, usunąłem zduplikowaną konfigurację GlobalSection (TeamFoundationVersionControl) i ponownie załadowałem rozwiązanie, a komunikat ostrzegawczy zniknął.

Jeśli to nie jest dla Ciebie problem, biorąc pod uwagę, że masz tylko 2 projekty, porzuciłbym uszkodzony plik rozwiązania, stworzył nowe rozwiązanie i ponownie dodałbym Twoje dwa projekty ...

Bojki
źródło
6
Miałem ten sam problem z VS2012, to rozwiązanie zadziałało. Dzięki!
David Airapetyan,
4
Czy można bezpiecznie założyć, że GlobalSection (TeamFoundationVersionControl), który powinien zostać usunięty, jest dolnym?
frostshoxx
4
Miałem ten sam problem i właśnie usunąłem dolny. To rozwiązało problem. Wydaje się, że czasami powoduje to łączenie.
MajOM
12
To było dla mnie dolne (było wyraźnie nieaktualne). Podejrzewam, że VS używa pierwszego znalezionego. W moim przypadku było to spowodowane scaleniem TFS.
Igby Largeman,
2
Ten sam problem w VS2013 z duplikatem GlobalSection - naprawiony przez usunięcie
Mark Hosang
31

Wygląda na to, że istnieje wiele przyczyn tego ostrzeżenia. Dostałem to, ponieważ mój plik rozwiązania, SccNumberOfProjects = 4gdy było tylko 3.

bicbmx
źródło
25

Najlepszym rozwiązaniem jest, aby zmusić VS do regeneracji configs. Aby to zrobić:

  1. Otwórz plik sln w edytorze tekstu.
  2. Przewiń w dół, aż dojdziesz do ostatniego elementu „EndProject”.
  3. Usuń wszystko po tym.
  4. Zapisz, zamknij i odbuduj rozwiązanie, a wszystko zostanie zregenerowane.
Arvand
źródło
To rozwiązanie było idealne dla mojej sytuacji. The following property is missing or has incorrect value: SccLocalPath63The following property is missing or has incorrect value: SccLocalPath64
Otrzymałem
2
To rozwiązanie działało dla mnie w VS 2017. W rzeczywistości odtwarza je po otwarciu pliku sln. Zauważ, że EndProject to jedno słowo.
Varun Sharma,
To była dla mnie poprawka. Jedyną różnicą w pliku rozwiązania był SolutionGuid.
ADH
2
To zadziałało w VS 2017. Jedyne, co muszę dodać, to ... jeśli używasz folderów rozwiązań ... będziesz musiał wrzucić swoje projekty z powrotem do właściwych "slotów"
Prisoner ZERO,
1
To zadziałało dla mnie w VS 2019. Miałem zduplikowane sekcje, jak wspomniano w innych rozwiązaniach, ale kiedy je usuwałem, wracały. To był jedyny, który działał.
fehays
8

Właśnie naprawiłem podobny problem w VS2012 z 44 projektami.

Przyczyną było połączenie zduplikowanej GlobalSection(TeamFoundationVersionControl)sekcji (odpowiedź a la Boycs), ale miałem też zduplikowanych kilka projektów - a także kilka odniesień do projektów, które zostały niedawno usunięte - w GlobalSection(TeamFoundationVersionControl)sekcji, którą zachowałem.

Gdy upewniłem się, że wszystkie wymienione projekty odpowiadają 1: 1 rzeczywistym projektom w moim rozwiązaniu, ostrzeżenie zniknęło.

Na marginesie: podejrzewam, że większości tych problemów można było uniknąć, zwracając większą uwagę na .sln podczas łączenia gałęzi i zatwierdzania, ale kto wie, o czym myśli VS czasami ...

Ben Mosher
źródło
5

Powyżej miałem mnóstwo błędów. Zmieniłem nazwę projektu, zapisałem jako zamknięty, ponownie otworzyłem i zmieniłem nazwę z powrotem. To odtwarza plik .sln iw moim przypadku usuwa wszystkie dodatkowe elementy.

CThin
źródło
Najłatwiej naprawić tutaj. Nie kłopocz się przekopywaniem się w .slnposzukiwaniu błędów.
Jonathan Landrum
Czy mógłbyś to trochę rozwinąć. Niektórzy użytkownicy mogą nie rozumieć. Czy chcesz zmienić jego nazwę w eksploratorze, programie Visual Studio lub w rzeczywistym pliku?
iTechy
1
Zrób to w Visual Studio, kliknij prawym przyciskiem myszy projekt, zmień nazwę na dowolną, a następnie zapisz i wyjdź. Otwórz ponownie i wróć do oryginału, zapisz i zakończ. ponownie otwórz rozwiązanie, a błąd powinien zniknąć.
CThin
2

Rozwiązano identyczny komunikat o błędzie w VS2012, podążając za przykładem Boycs. Dla mnie problemem były dwa obce GlobalSection(SolutionConfigurationPlatforms) = preSolutionbloki na dole mojego pliku SLN.

BitPusher16
źródło
2

Dla mnie problemem były puste spacje (spowodowane kopiowaniem i wklejaniem) na końcu każdego wiersza. Usuwając je, nie otrzymałem ponownie błędu.

papaiatis
źródło
2

W VS 2015 miałem dwie z tych sekcji „ GlobalSection (TeamFoundationVersionControl) = preSolution

Pierwsza obejmowała najnowszy projekt dodany do rozwiązania, druga (pod koniec pliku rozwiązania) nie. Po usunięciu drugiego rozwiązanie otworzyło się w VS 2015 bez żadnych błędów.

Papa Stahl
źródło
1

Pozostałe odpowiedzi już wyjaśniają, jak rozwiązać problem. Może pomogę, aby problem ponownie się nie pojawił:

Skąd mam problem? Nasz plik rozwiązania się pomieszał, kiedy dodałem do niego nowy projekt, podczas gdy inny programista również dodał nowy projekt i wprowadził zmiany (których nie dostałem w moim lokalnym systemie). Kiedy zacząłem zatwierdzać zmiany, musiałem scalić plik .sln, w którym oczywiście zawiodłem :-)

Czego się nauczyłem

Scalanie plików rozwiązań jest okropne. Jeśli dodasz projekt, wykonaj następujące czynności: 1. Pobierz najnowszą wersję 2. Dodaj projekt 3. Zatwierdź

Jeśli widzisz plik rozwiązania pod oczekującymi zmianami, ale nie widzisz zmiany w trybie porównania, musisz nacisnąć „Zapisz wszystko”. Podczas dodawania nowego projektu VisualStudio zmieniło również rozwiązanie. Jednak w tej chwili jest to niezapisana zmiana.

WHO
źródło
1

Sprawdź SccNumberOfProjects w .sln pliku mogą być różni się od rzeczywistej liczby projektów.

Ali Karaca
źródło
0

naprawiłem podobny problem w vs2012.

w moim przypadku problem polegał na tym, że wartość właściwości SccProjectName0 wewnątrz GlobalSection w pliku MySolutionName.sln była pusta.

rozwiązałem to, ustawiając wartość SccProjectName0 z kopią tej wartości ciągu z innego rozwiązania i zamieniając nazwę projektu w ciągu na bieżącą (BTW - jeśli nazwa projektu jest w nim spacja (``), musi zamień na „\ u0020”).

*

w moim przypadku problem zaczyna się po omyłkowym otwarciu rozwiązania kontrolowanego przez TFS ze starym plikiem MySolutionName.sln tego samego rozwiązania od czasu, gdy to rozwiązanie było kontrolowane przez VSS.

Yossi B
źródło
0

Aktualizacja 3. VS2015 [GlobalSection (TeamFoundationVersionControl) = preSolution] została zduplikowana w pliku rozwiązania. Dolna kopia zawierała projekt, który został wcześniej usunięty ... więc usunięcie tego duplikatu rozwiązało problem. Myślę, że duplikacja była spowodowana przez poprzedni problem z łączeniem.

Moutono
źródło
0

Mogę dodać jeszcze jedno możliwe rozwiązanie - podejrzane scalenie oznaczało, że jedna z sekcji SccProjectUniqueName / SccProjectName / SccLocalPath w sekcji GlobalSection (TeamFoundationVersionControl) zawierała numery, które nie były unikalne, mimo że SccNumberOfProjects było poprawne. Poprawiono numerację, komunikat o błędzie zniknął.

Julian Melville
źródło
0

VS 2019 - Po raz pierwszy otwierałem projekt VS 2017 w VS 2019. W oknie Dane wyjściowe kliknij „Pokaż dane wyjściowe z:” i przejrzyj dostępne opcje, ponieważ mogą zostać wyświetlone dodatkowe informacje o błędzie.

W moim przypadku rozwiązaniem była po prostu ponowna konfiguracja moich mapowań kontroli źródła na 2019 rok.

  • Przejdź do Team Explorer
  • Kliknij przycisk Zarządzaj połączeniami (wtyczka)
  • Kliknij łącze Zarządzaj połączeniami i Połącz z projektem ...
  • ...
GrayDwarf
źródło
-1

Miałem ten sam problem, a moje rozwiązanie to:

  1. Otwórz rozwiązanie w VS
  2. Ustaw platformę rozwiązań na domyślną
  3. Zapisz to
  4. Zamknij VS
  5. Otwórz plik .sln w Notepad ++ (lub dowolnym innym edytorze)
  6. Usuń wszystkie pozostałe elementy platformy rozwiązań z dowolnego miejsca
  7. (na przykład: {73E03C8F-1F76-45E2-9D45-FA040A63F0AA} .Release | Any CPU.Build.0 = Release | Any CPU)
  8. Zapisz go i ponownie otwórz rozwiązanie.

To działa dla mnie.

Zoltán Nyakas
źródło