Miałem aktualizację dla społeczności Visual Studio 2019. Jestem teraz w wersji 16.10.2. Ale teraz nie mogę już otwierać moich rozwiązań. Istniejące projekty nie są ładowane, a dziennik mówi tak:

====================== 18-6-2021 08:58:43 Odzyskiwalne System.MissingMethodException: Nie znaleziono metody: „System.Collections.Generic.LinkedListNode1<!0> System.Collections.Generic.LinkedList1.gdt_Last()”. w Microsoft.Build.Evaluation.ProjectRootElementCache.BoostEntryInStrongCache(ProjectRootElement projectRootElement) w Microsoft.Build.Evaluation.ProjectRootElementCache.RenameEntryInternal (ciąg oldFullPathIfAny, ProjectRootElement projectRootElement) w Microsoft.Build.Evaluation.ProjectRootElementCache.AddEntry(ProjectRootElement projectRootElement) w Microsoft.Build.Construction.ProjectRootElement..ctor(String path, ProjectRootElementCacheBase projectRootElementCache, Boolean preserveFormatting) w Microsoft.Build.Construction.ProjectRootElement.OpenLoader (ścieżka ciągu, ProjectRootElementCacheBase projectRootElementCache) w Microsoft.Build.Evaluation.ProjectRootElementCache.Get(String projectFile, OpenProjectRootElement openProjectRootElement, Boolean isExplicitlyLoaded, Nullable1 preserveFormatting) at Microsoft.Build.Construction.ProjectRootElement.Open(String path, ProjectRootElementCacheBase projectRootElementCache, Boolean isExplicitlyLoaded, Nullable1 preserveFormatting) w Microsoft.Build.Construction.ProjectRootElement.Open(String path, ProjectCollection projectCollection, Nullable1 preserveFormatting) at Microsoft.VisualStudio.ProjectSystem.ProjectLockService.Microsoft.VisualStudio.ProjectSystem.IProjectLockReleaser.GetProjectXmlAsync(String projectFile, CancellationToken cancellationToken) at Microsoft.VisualStudio.ProjectSystem.UnconfiguredProjectImpl.<>c__DisplayClass185_0.<<SaveUserFileAsync>b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.Threading.JoinableTask.<JoinAsync>d__76.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.ProjectSystem.ProjectLockService.<ExecuteWithinLockAsync>d__128.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.VisualStudio.ProjectSystem.ProjectLockService.<ExecuteWithinLockAsync>d__128.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.ProjectSystem.UnconfiguredProjectImpl.<DisposeAsync>d__174.MoveNext() =================== 18-6-2021 08:58:43 Recoverable System.MissingMethodException: Method not found: 'System.Collections.Generic.LinkedListNode1 System.Collections.Generic.LinkedList1.gdt_Last()'. at Microsoft.Build.Evaluation.ProjectRootElementCache.BoostEntryInStrongCache(ProjectRootElement projectRootElement) at Microsoft.Build.Evaluation.ProjectRootElementCache.RenameEntryInternal(String oldFullPathIfAny, ProjectRootElement projectRootElement) at Microsoft.Build.Evaluation.ProjectRootElementCache.AddEntry(ProjectRootElement projectRootElement) at Microsoft.Build.Construction.ProjectRootElement..ctor(String path, ProjectRootElementCacheBase projectRootElementCache, Boolean preserveFormatting) at Microsoft.Build.Construction.ProjectRootElement.OpenLoader(String path, ProjectRootElementCacheBase projectRootElementCache) at Microsoft.Build.Evaluation.ProjectRootElementCache.Get(String projectFile, OpenProjectRootElement openProjectRootElement, Boolean isExplicitlyLoaded, Nullable1 preserveFormatting) w Microsoft.Build.Construction.ProjectRootElement.Open (ścieżka ciągu, ProjectRootElementCacheBase projectRootElementCache, Boolean isExplicitlyLoaded, Nullable1 preserveFormatting) at Microsoft.Build.Construction.ProjectRootElement.Open(String path, ProjectCollection projectCollection, Nullable1 ​​zachowajFormatowanie) w Microsoft.VisualStudio.ProjectSystem.ProjectLockService.Microsoft.VisualStudio.ProjectSystem.IProjectLockReleaser.GetProjectXmlAsync(String projectFile, CancellationToken cancelToken) w Microsoft.VisualStudio.ProjectSystem.UnconfiguredProjectImpl.<>c__DisplayClass185_0.d.MoveNext() --- Koniec śladu stosu z poprzedniej lokalizacji, w której zgłoszono wyjątek --- w System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (zadanie zadania) w System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (zadanie zadania) w Microsoft.VisualStudio.Threading.JoinableTask.d__76.MoveNext() --- Koniec śladu stosu z poprzedniej lokalizacji, w której zgłoszono wyjątek --- w System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (zadanie zadania) w System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (zadanie zadania) w Microsoft.VisualStudio.ProjectSystem.ProjectLockService.d__128.MoveNext() --- Koniec śladu stosu z poprzedniej lokalizacji, w której zgłoszono wyjątek --- w Microsoft.VisualStudio.ProjectSystem.ProjectLockService.d__128.MoveNext() --- Koniec śladu stosu z poprzedniej lokalizacji, w której zgłoszono wyjątek --- w System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (zadanie zadania) w System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (zadanie zadania) w Microsoft.VisualStudio.ProjectSystem.UnconfiguredProjectImpl.d__174.MoveNext() =====================

Jeśli uruchomię nowe rozwiązanie za pomocą MVC Api, rozwiązanie zostanie utworzone, ale projekt nie zostanie dodany. Dodanie go do rozwiązania ręcznie daje mi ten błąd:

Nie znaleziono metody: „System.Collections.Generic.LinkedListNode1 System.Collections.Generic.LinkedList1.gdt_Last()”

Co próbowałem:

  • Napraw studio Visual.
  • Odinstalowany Visual Studio i wszystko, co ma związek z platformami .NET lub Microsoft
  • Google (nic nie znaleziono)

Czy ktoś ma pojęcie, dlaczego tak się dzieje nagle?

8
user1140479 18 czerwiec 2021, 10:02

4 odpowiedzi

Najlepsza odpowiedź

Ten problem jest rzadki, ale nie tylko ja. Właśnie rozmawiałem z kimś z dokładnie tymi samymi błędami i problemami. Podane odpowiedzi nie były odpowiedziami, ponieważ nie mogę otworzyć rozwiązań, więc nie mogę wykonać kroków. Podanego pomysłu na temat csproj nie ma w moich projektach. Więc kopałem głębiej... Bez powodzenia.

Na szczęście Microsoft udostępnił podgląd Visual Studio 2022. Zainstalowałem go obok Visual Studio 2019. Kiedy otwieram moje rozwiązania w 2022 roku, ładują się bez żadnego błędu czy ostrzeżenia. Kiedy otwieram je w 2019 roku, pojawia się ten sam błąd, co w moim oryginalnym poście, a potem nic nie jest ładowane. W niektórych przypadkach 2019 nawet się zawiesza. Projekty to .NET Core 3.1 lub .NET 5 (oczywiście nie w tym samym rozwiązaniu).

Wysłałem raport z wiadomością do firmy Microsoft, ale nie odpowiedzieli mi.

Rozwiązanie: Zainstaluj program Visual Studio 2022 Preview i odinstaluj program Visual Studio 2019. Podgląd działa bez problemów.

-2
ElzermanK 25 czerwiec 2021, 08:55

Oto moje 2¢:

  1. Jeśli projekt zawiera pakiety NuGet, sprawdź i zaktualizuj każdy z nich poprawnie.
  2. Nie jestem pewien, czy masz najnowszą wersję .Net, która niedawno jest 5. Co się stało, gdy otrzymasz System.Collections.dll i zastąp go skorelowanym plikiem .dll o tej samej nazwie. Na przykład biblioteka dll znajduje się w C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0 na moim komputerze.

Myślę jednak, że po zaktualizowaniu struktury do platformy .Net 5 wraz z aktualizacją powiązanych pakietów NuGet rozwiązuje ten problem.

Jak zmienić wersję projektu?

Kliknij prawym przyciskiem myszy projekt, Properties --> Application --> Target framework. Menu rozwijane platformy docelowej wyświetla listę platform zainstalowanych na twoim komputerze. Jeśli nie chcesz go aktualizować, weź przynajmniej .Net 5 i stwórz wersję w rozwijanym menu.

enter image description here enter image description here

-1
snr 20 czerwiec 2021, 16:20

Sprawdź to rozwiązanie

Otwórz .csproj i usuń ten tag

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> bla-bla </Target>
-1
Shaybakov 20 czerwiec 2021, 15:45

Podejrzewam, że najnowsza wersja VS2019 zaktualizowała pamięć podręczną rozwiązania, bez wstecznej kompatybilności lub ją uszkodziła. Spróbuj usunąć ukryty folder .vs w folderze rozwiązania i ponownie otwórz rozwiązanie z VS2019, którego chcesz użyć.

0
Soleil 26 czerwiec 2021, 17:10