Динамическое задание в сетевом стандартном сетевом приложении .net 1.6?

Я пытаюсь использовать переменную dynamic в основном приложении С#.net, предназначенное для таргетинга .net standard 1.6. (платформа? library? framework? meta-framework?) Я впервые столкнулся с этой проблемой в реальном приложении, но я уменьшил ее до минимального воспроизведения.

project.json

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

Program.cs

using System;

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

Когда я пытаюсь построить это, я получаю ошибку сборки на Console.WriteLine(hello);, говоря об этом.

CS0656 Отсутствует компилятор, требуемый член 'Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create'

Можно ли использовать переменные dynamic в таргетинге на приложение netstandard 1.6? Как?

Ответ 2

Если вы пишете приложение, а не библиотеку, вы должны использовать Microsoft.NETCore.App, а не NETStandard.Library и netcoreapp1.0, а не netstandard1.6. Это может решить вашу проблему.

Если вы хотите использовать dynamic в библиотеке (или приложении, которое не зависит от Microsoft.NETCore.App), вам нужно добавить Microsoft.CSharp в качестве зависимости.

Ответ 3

Щелкните правой кнопкой мыши проект > Управление пакетами NuGet... > Добавьте следующие два выделенных пакета: введите описание изображения здесь