Error CS0656 Missing compiler required member 'Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create'

Blurps, blurps, j'ai un peu de mal à digérer cette erreur, on s'accroche et on trouve la solution ... Voici le contexte : une application ASP.NET Core C# mais je penses qu'il suffit d'utiliser le mot clef "dynamic" pour avoir des soucis et obtenir cette erreur du compilateur au moment de la génération de l'application.

Il y a une partie de réponse succincte ici :

Add the reference to Microsoft.CSharp as
Project->add reference-->Framework-->Microsoft.CSharp

Visual Studio - How to fix missing compiler member error Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create

Mais cette réponse est trop rapide, en effet on ne trouve rien dans l'onglet correspondant, il faut aller chercher la référence à cette DLL directement dans le Framwork "à la main" de la façon suivante :

C:\Windows\Microsoft.NET\Framework64\v4.0.30319
C:\Windows\Microsoft.NET\Framework64\v4.0.30319

Et toujours cette fonction de recherche de fichiers sous Windows 10 qui n'est vraiment pas satisfaisante mais bon, passons. On fini par trouver le path de la DLL, dont on va pouvoir ajouter la référence dans le projet. Voici le chemin d'accès (path) vers cette DLL Microsoft.CSharp.dll :

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.CSharp.dll

Mais n'est-ce pas un peu aberrant cette façon de faire, en tous cas elle est dépendante de la machine, alors il y en a un qui préconise l'installation de NuGet, de la façon suivante :

They have in common that one may add NuGet package Microsoft.CSharp:
"... install the Microsoft.CSharp package in the .NET Standard project. This library is necessary to use the C# dynamic data type in a .NET Standard library. ..."


Personnellement, j'ai installé le NuGet package Microsoft.CSharp :

.NET Core Utilisation de Dynamic -> Installation du package Microsoft.CSharp
.NET Core Utilisation de Dynamic -> Installation du package Microsoft.CSharp

Et cela à fonctionné pour moi, mais elle est un peu ... heu, comment dire, violente cette erreur simplement sur l'utilisation du mot clef dynamic le message de l'erreur est incompréhensible. J'espère que cela sera corrigé dans les prochaines release des frameworks de Visual Studio.

CQFD !

1 commentaire:

Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.