J'essaie d'utiliser une variable dynamic
dans une application principale C # .net qui cible la norme .net 1.6. (plateforme? bibliothèque? framework? méta-framework?) J'ai rencontré ce problème pour la première fois dans une application réelle, mais je l'ai réduit à une reproduction minimale.
{
"version": "1.0.0-*",
"buildOptions": { "emitEntryPoint": true },
"dependencies": { "NETStandard.Library": "1.6.0" },
"frameworks": {
"netstandard1.6": { "imports": "dnxcore50" }
},
"runtimes": { "win10-x64": {} }
}
using System;
public class Program {
public static void Main(string[] args) {
dynamic hello = "hello world";
Console.WriteLine(hello);
}
}
Quand j'essaye de construire ceci, j'obtiens une erreur de construction sur Console.WriteLine(hello);
disant ceci.
CS0656 Le compilateur manquant a requis le membre 'Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create'
Est-il possible d'utiliser des variables dynamic
dans une application ciblant netstandard 1.6? Comment?
Ajoutez System.Dynamic.Runtime et Microsoft.CSharp en tant que dépendances.
Si vous écrivez une application, pas une bibliothèque, vous devez utiliser Microsoft.NETCore.App
, ne pas NETStandard.Library
et netcoreapp1.0
, ne pas netstandard1.6
. Cela résoudrait votre problème.
Si vous souhaitez utiliser dynamic
dans une bibliothèque (ou une application qui ne dépend pas de Microsoft.NETCore.App
), vous devez ajouter Microsoft.CSharp
comme dépendance.