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?
3 réponses
Ajouter Système.Dynamique.Runtime et Microsoft.CSharp comme des dépendances.
clic droit sur le projet > Gérer les paquets NuGet... > Ajouter les deux paquets en surbrillance suivants:
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.