J'étais également confronté à ce problème en essayant d'exécuter un projet ASP .NET MVC après une mise à jour mineure de notre base de code, même s'il a été compilé sans erreur:
Message d'erreur du compilateur: CS0012: Le type «System.Object» est défini dans un assembly qui n'est pas référencé. Vous devez ajouter une référence à l'assembly 'System.Runtime, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'.
Notre projet n'avait jamais rencontré ce problème, j'étais donc sceptique quant à la modification des fichiers de configuration avant de découvrir la cause première. À partir des journaux d'erreurs, j'ai pu localiser cette sortie détaillée du compilateur qui indiquait ce qui se passait réellement:
avertissement CS1685: Le type prédéfini 'System.Runtime.CompilerServices.ExtensionAttribute' est défini dans plusieurs assemblys dans l'alias global; en utilisant la définition de «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): erreur CS0012: le type 'System.Object' est défini dans un assembly qui est non référencé. Vous devez ajouter une référence à l'assembly 'System.Runtime, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'.
c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Fichiers ASP.NET temporaires \ meseems.webapp \ 68e2ea0f \ 8c5ee951 \ assembly \ dl3 \ 52ad4dac \ 84698469_3bb3d401 \ System.Collections.Immutable.DLL: (Emplacement du symbole lié à l'erreur précédente)
Apparemment, un nouveau package ajouté à notre projet faisait référence à une ancienne version du .NET Framework, provoquant le problème de "définition dans plusieurs assemblys" (CS1685), qui a conduit à l'erreur du compilateur de la vue rasoir lors de l'exécution.
J'ai supprimé le package incompatible (System.Collections.Immutable.dll) et le problème a cessé de se produire. Cependant, si le package ne peut pas être supprimé dans votre projet, vous devrez essayer la réponse de Baahubali .