Napotkałem również ten problem, próbując uruchomić projekt ASP .NET MVC po drobnej aktualizacji naszej bazy kodu, mimo że skompilował się bez błędów:
Komunikat o błędzie kompilatora: CS0012: Typ „System.Object” jest zdefiniowany w zestawie, do którego nie ma odniesienia. Musisz dodać odwołanie do zestawu „System.Runtime, Wersja = 4.0.0.0, Kultura = neutralny, PublicKeyToken = b03f5f7f11d50a3a”.
Nasz projekt nigdy nie napotkał tego problemu, więc sceptycznie podchodziłem do zmiany plików konfiguracyjnych, zanim odkryłem główną przyczynę. Z dzienników błędów udało mi się zlokalizować szczegółowe dane wyjściowe kompilatora, które wskazywały na to, co się naprawdę działo:
ostrzeżenie CS1685: Predefiniowany typ „System.Runtime.CompilerServices.ExtensionAttribute” jest zdefiniowany w wielu złożeniach w aliasie globalnym; przy użyciu definicji z „c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ mscorlib.dll”
c: \ Users \ Admin \ Software Development \ source-control \ Binaries \ Publish \ WebApp \ Views \ Account \ Index.cshtml (35,20): błąd CS0012: Typ „System.Object” jest zdefiniowany w zestawie, który jest brak odniesienia. Musisz dodać odwołanie do zestawu „System.Runtime, Wersja = 4.0.0.0, Kultura = neutralny, PublicKeyToken = b03f5f7f11d50a3a”.
c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Tymczasowe pliki ASP.NET \ meseems.webapp \ 68e2ea0f \ 8c5ee951 \ assembly \ dl3 \ 52ad4dac \ 84698469_3bb3d401 \ System.Collections.Immutable.DLL: (Położenie związane z symbolem do poprzedniego błędu)
Najwyraźniej nowy pakiet dodany do naszego projektu odwoływał się do starszej wersji .NET Framework, powodując problem „definicji w wielu złożeniach” (CS1685), co doprowadziło do błędu kompilatora widoku ostrzy w czasie wykonywania.
Usunąłem niezgodny pakiet (System.Collections.Immutable.dll) i problem przestał występować. Jeśli jednak pakiet nie może zostać usunięty z twojego projektu, musisz wypróbować odpowiedź Baahubali .