Un ou plusieurs types requirejs pour comstackr une expression dynamic sont introuvables. Vous manque-t-il des références à Microsoft.CSharp.dll et System.Core.dll?

J’essaie de comstackr ce code dans Microsoft Visual C # 2010

using System; using System.Globalization; class main { static void Main() { dynamic d; d = "dyna"; Console.WriteLine(d); } } 

mais je reçois ces deux erreurs

Erreur 1 Le type prédéfini ‘Microsoft.CSharp.RuntimeBinder.Binder’ n’est ni défini ni importé

Erreur 2 Un ou plusieurs types requirejs pour comstackr une expression dynamic sont introuvables. Vous manque-t-il des références à Microsoft.CSharp.dll et System.Core.dll?

J’ai lu cet autre article mais je ne suis pas nouveau sur C # et je ne comprenais pas vraiment quel était le problème. Surtout quoi et où sont ces soi-disant fichiers .config ..

Dans la fenêtre de l’explorateur de solutions, cliquez avec le bouton droit sur Références, sélectionnez Ajouter une référence, accédez à l’onglet .NET, recherchez et ajoutez Microsoft.CSharp.

Assurez-vous que votre projet cible le .NET Framework 4.0. Visual Studio 2010 prend également en charge la cible du framework .NET 3.5, mais .NET 3.5 ne prend pas en charge le mot clé dynamic .

Vous pouvez ajuster la version du framework dans les propriétés du projet. Voir http://msdn.microsoft.com/en-us/library/bb398202.aspx pour plus d’informations.

J’ai eu le même problème, sauf que la suppression et l’ajout de la référence de retour n’a pas corrigé l’erreur, j’ai donc changé la version .Net de 4.5 à 4.5.1 .

Pour ce faire, allez dans votre fichier web.config et changez les lignes suivantes

   

pour ça

   

et reconstruire.

Les lignes rouges sous le ViewBag étaient mon mal de tête pendant 3 mois). Supprimez simplement la référence Microsoft.CSharp du projet, puis ajoutez-la à nouveau.

J’ai eu le même problème et l’ai résolu en supprimant la référence “Microsoft.CSharp” du projet, puis je l’ai rajoutée.

Pour moi, supprimer et rappend une référence à Microsoft.CSharp a résolu le problème temporairement jusqu’à ce que le fichier affecté soit modifié. En fermant Visual Studio et en rouvrant le projet, vous l’avez corrigé à long terme, c’est donc une option si cette situation se produit alors que Microsoft.CSharp est déjà référencé.

Redémarrer l’EDI dans un premier temps semble peut-être banal, mais voici un rappel pour les personnes comme moi qui ne pensent pas à cela comme la première chose à faire.

Aucun d’entre eux n’a fonctionné pour moi.

Mes bibliothèques de classes faisaient toutes référence à la fois à System.Core et à Microsoft.CSharp. Application Web était 4.0 et ne pouvait pas passer à la version 4.5 en raison de problèmes de support.

Je rencontrais une erreur lors de la compilation d’un modèle de razor à l’aide de Razor Engine et je ne le rencontrais que par intermittence, comme après le redémarrage d’une application Web.

La solution qui a fonctionné pour moi était de charger manuellement l’assemblage puis de réessayer la même opération …

  bool retry = true; while (retry) { try { ssortingng textTemplate = File.ReadAllText(templatePath); Razor.ComstackWithAnonymous(textTemplate, templateFileName); retry = false; } catch (TemplateCompilationException ex) { LogTemplateException(templatePath, ex); retry = false; if (ex.Errors.Any(e => e.ErrorNumber == "CS1969")) { try { _logger.InfoFormat("Attempting to manually load the Microsoft.CSharp.RuntimeBinder.Binder"); Assembly csharp = Assembly.Load("Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"); Type type = csharp.GetType("Microsoft.CSharp.RuntimeBinder.Binder"); retry = true; } catch(Exception exLoad) { _logger.Error("Failed to manually load runtime binder", exLoad); } } if (!retry) throw; } } 

J’espère que cela pourrait aider quelqu’un d’autre.

Si vous manquez, Microsoft.CSharp.dll cette erreur peut se produire. Vérifiez vos références de projet.