Référence dynamique dans a.net objectif de base de l'app norme nette 1.6?

j'essaie d'utiliser un dynamic variable dans une application c# .net core qui cible la norme .net 1.6. (plate-forme? bibliothèque? framework? un méta-cadre?) J'ai d'abord rencontré ce problème dans une application réelle, mais j'ai réduit à un minimum la reproduction.

projet.json

{
    "version": "1.0.0-*",
    "buildOptions": { "emitEntryPoint": true },
    "dependencies": { "NETStandard.Library": "1.6.0" },
    "frameworks": {
        "netstandard1.6": { "imports": "dnxcore50" }
    },
    "runtimes": { "win10-x64": {} }
}

Programme.cs

using System;

public class Program {
    public static void Main(string[] args) {
        dynamic hello = "hello world";
        Console.WriteLine(hello);
    }
}

Quand j'essaie de construire cela, j'obtiens une erreur de build sur Console.WriteLine(hello); en disant cela.

CS0656 compilateur manquant requis le membre 'de Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Créer'

Est-il possible d'utiliser dynamic variables dans une application ciblant netstandard 1.6? Comment?

14
demandé sur recursive 2016-09-03 00:15:07

3 réponses

Ajouter Système.Dynamique.Runtime et Microsoft.CSharp comme des dépendances.

22
répondu Set 2016-09-02 21:43:43

clic droit sur le projet > Gérer les paquets NuGet... > Ajouter les deux paquets en surbrillance suivants: enter image description here

10
répondu Hong 2017-08-29 17:45:43

Si vous écrivez une application, pas une bibliothèque, vous devez utiliser Microsoft.NETCore.App, pas NETStandard.Library et netcoreapp1.0, pas netstandard1.6. Faire cela peut résoudre votre problème.

si vous voulez utiliser dynamic dans une bibliothèque (ou une application qui ne dépend pas de l' Microsoft.NETCore.App), vous devez ajouter Microsoft.CSharp comme une dépendance.

4
répondu svick 2016-09-03 09:43:33