Le type ‘Expression ‘ est défini dans un assembly non référencé

Dans ASP.NET MVC 4.5.2 Framework.

après avoir tapé

@Html.LabelFor() or @Html.EditorFor() 

en vue

J’obtiens une erreur: le type ‘Expression ‘ est défini dans un assembly non référencé.Vous devez ajouter une référence à l’assembly ‘System.Core, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089’.

J’ai ajouté la référence d’assembly System.Core.dll, version 4.0.0.0, version d’exécution v4.0.30319. et aussi je l’ai fait dans web.config

    J’ai rencontré le même problème que vous, bien que beaucoup plus tard. Le problème était que je n’étais pas en mesure d’accéder aux vues Razor (.cshtml) car je recevais une erreur indiquant que j’avais une référence d’assembly manquante, à savoir System.Web.Mvc , même si elle figurait dans les références du projet. Après enquête, j’ai remarqué que la version de NuGet installée était 5.2.3, alors que le projet nécessitait la version 5.2.0. La solution consiste à rétrograder la version de MVC.

    1. Accédez à Project-> NuGet Package Manager.
    2. Rechercher MVC; ça va être le premier résultat.
    3. Ensuite, sélectionnez dans la liste déroulante les détails du package NuGet et soumettez-les.

    Confirmez toutes les boîtes de dialog et vous êtes prêt à partir.

    Je ne suis pas sûr que vous ayez toujours ce problème ou non, mais j’avais aussi le même problème.

    J’ai pu trouver les solutions ici

    https://stackoverflow.com/questions/6496223/compilation-error-in-net-4-0-web-config-linq-not-found

        

    J’espère que ça aide..

    Cette erreur signifie que Visual Studio ne parvient pas à localiser l’assembly System.Web.Mvc pour alimenter ses vues IntelliSense pour Razor. Un ou deux des éléments suivants peuvent être nécessaires pour le réparer.

    1. Assurez-vous que la version du framework .NET pour la propriété de compilation dans le fichier web.config principal (celui de la racine du site Web) est identique à celle spécifiée dans les propriétés du projet.

    [root] /Web.config:

       

    Propriétés du projet:

    Propriétés du projet

    1. Assurez-vous que la version de l’assembly MVC spécifiée dans les vues web.config (celle du dossier des vues) est identique à celle de l’assemblage MVC que vous utilisez dans votre projet.

    [dossier de vues] /web.config:

       

    Propriétés de référence d’assemblage MVC:

    Version MVC

    • Fermez le fichier cshtml
    • Reconstruire la solution
    • Ouvrez le fichier cshtml
    • Toujours des erreurs? Redémarrez Visual Studio
    • Toujours des erreurs? Utiliser la réponse de ctm1988

    J’ai essayé la plupart d’entre eux, ce qui a finalement fonctionné pour moi était de décharger le projet, de modifier le fichier csproj et d’append ce qui suit:

      

    https://stackoverflow.com/a/38371981/2335660

    Dans mon cas, ce message était affiché uniquement lorsque Resharper était activé. J’ai effacé le cache Resharper, redémarré VS, éteint le Resharper et l’ai rallumé. Le message a disparu.

    Je viens d’avoir le même problème et aucune des solutions n’a résolu le problème. Je devais append ceci dans mon web.config dans System.Web

       

    Je l’avais enlevé en changeant une partie de la config .

    Vérifiez que l’action de génération du fichier cshtml est définie sur «Contenu».

    J’utilise ReSharper et j’ai remarqué que, pour une raison quelconque, le fichier généré est défini par défaut sur «Aucun» lors de l’appel du modèle.

    Pour moi, il y avait une option dans le menu du projet “Activer C # 6.0 / VB 14”. La sélection de cette option a fait l’affaire. Auparavant, j’ai essayé de modifier le fichier web.config, en redémarrant Visual Studio, etc., comme cela a été suggéré dans cet article.

    J’ai eu le même problème avec un assemblage manquant et il est arrivé que la version de VS2017 ne l’ait pas copiée correctement dans le dossier Bin. Ces étapes m’ont aidé:

    • Naviguez jusqu’au nœud Références du projet Web
    • Trouvez la référence à System.Core
    • Ouvrez la fenêtre Propriétés VS
    • Dans la fenêtre des propriétés, modifiez Copie locale: Faux sur Vrai

    from this comment: CS0012: Le type ‘##### Any type #####’ est défini dans un assembly non référencé

    Dans Web.config je devais changer:

        

    à

         

    Cela s’est passé avec l’un de mes points de vue – tous les autres étaient bien. J’ai fait ce qui suit:

    • Créer une nouvelle vue
    • Copier et coller le contenu de l’ancienne vue dans la nouvelle
    • Supprimé l’ancien
    • Renommé le nouveau à l’ancien

    Redémarrer Visual Studio a fonctionné pour moi.

    Dans mon cas, la solution consistait à déplacer le ConnectionSsortingng dans Web.Config. Cette instruction doit figurer après la section AppSettings.

    • Ferme le fichier
    • Nettoyer la solution
    • Construire la solution
    • Rouvrez le fichier

    Essayer d’append

    using system.Linq.Expressions;

    J’ai eu ce problème également. Changer targetFramework="4.5.2" en targetFramwork="4.5" dans le fichier web.config a résolu le problème.

    Si vous obtenez ceci dans seulement un ou deux fichiers CSHTML … c’est un fichier corrompu.

    J’ai eu cela avec un fichier corrompu qui a des caractères Unicode cachés. Essayez de copier tout le texte du document sur une nouvelle instance du bloc-notes. Effacer le contenu du fichier d’origine et enregistrer … si la longueur du fichier est> 0, il y a quelque chose qui ne va pas.

    Supprimez le fichier et enregistrez votre instance de bloc-notes sur l’ancienne version. Toutes les erreurs sont parties pour moi.

    J’ai eu cela quelques fois dans ma solution. Je ne suis pas sûr de ce qui la cause, mais je soupçonne que c’est Resharper qui foirait quand il commence à avaler de gros morceaux de mémoire dans l’abîme.

    Suis-je le seul à avoir une relation d’amour / haine avec Resharper?

    Cela peut être dû à la présence de plusieurs projets dans votre solution qui ne ciblent pas tous la même version du .NET Framework. Par exemple, si votre projet d’application Web cible .NET 4.5 et que vous avez une référence d’assembly à un autre projet dans la solution qui cible .NET 4.5.2. Pour résoudre ce problème, vous devez modifier vos projets pour tous cibler la même version du .NET Framework.

    Si aucune des réponses ne fonctionne, utilisez celle-ci. J’ai fait face au même problème! En fait, le fichier configuration.cs dans le dossier migrations était manquant / supprimé. J’ai supprimé le dossier des migrations et j’ai également supprimé la table des migrations de la firebase database. Suivant dans la console Gestionnaire de packages (PM) utilisée les commandes suivantes:

     Enable-Migrations -Force Add-Migration Initial update-database 

    Ce processus a recréé le fichier configuration.cs et tout fonctionnait parfaitement!

    Vérifiez les propriétés de votre projet pour obtenir le cadre cible. J’ai résolu ce problème dans mon projet en faisant correspondre mon framework cible .NET Framework 4.6.1 MVC 5.2.3 était la solution appropriée. J’ai eu cette version de MVC de NuGet.

    J’ai rencontré le même problème. Fondamentalement, le problème utilise une version différente de System.Web.Mvc . Donc, la meilleure chose à faire est d’ouvrir Tools > Nuget Package Manager > Manage Nuget Packages for Solution . Vous pouvez probablement voir System.Web.Mvc sur l’onglet Cosolidate . La mise à niveau ou la rétrogradation serait la meilleure option. Si vous utilisez le dernier framework .Net, qui est actuellement .Net 4.6.1 , vous devez mettre à niveau toutes les versions de System.Web.Mvc vers la version 5.2.4.0 . Bonne chance!

    Ajoutez les éléments suivants à Web.config (en racine). J’ai essayé absolument toutes les suggestions précédentes et rien n’a fonctionné jusqu’à ce que je trouve le ci-dessous. J’espère que cela fera gagner du temps à quelqu’un d’autre.

    J’utilise targetFramework = “4.6.1”, mais changez-le pour la version que vous utilisez si différente.