Компиляция ASP.NET Core 1.1 с помощью динамического компилятора C#. Отсутствует обязательный член Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create.

Я использую Visual Studio 2017 RC и запустил новый проект ASP.NET Core, ориентированный на полную платформу .NET Framework.

Эта строка кода не будет компилироваться.

 dynamic handler = _container.GetService(handlerType);

 if (handler == null) _logger.LogError("Can't find handler to handle " + cmd.GetType().Name);

Я получаю следующую ошибку

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

После некоторого поиска в Google это выглядит так, потому что мне не хватает сборки Microsoft.CSharp. Есть много людей, которые столкнулись с его проблемой, но, похоже, не с .NET Core 1.1.

Итак, я сделал это Install-Package Microsoft.CSharp и получил версию 4.3.0. Мой проект все еще не будет построен.

Если я добавлю ссылку на сборку в Microsoft.CSharp (версия GAC), она скомпилируется и запустится.

Это ошибка? Я ожидал, что пакет NuGet исправит это?


person SimonGates    schedule 02.12.2016    source источник
comment
Этот пакет NuGet предназначен для .NET Standard. Для полной структуры следует использовать версию GAC. Ничего страшного. Но Visual Studio 2017 RC, не добавляющая эту ссылку автоматически, вероятно, является ошибкой.   -  person Alex    schedule 17.02.2017


Ответы (2)


Просто добавьте ссылку на Microsoft.CSharp.dll, и ваша ошибка будет устранена.

person Sheriff    schedule 02.06.2020

Я столкнулся с этой проблемой. Я решил эту проблему для себя. Вы должны установить библиотеку Microsoft.CSharp в свое решение из nuget.

Вы можете использовать Консоль диспетчера пакетов для установки Microsoft.CSharp. Например, если вы хотите установить версию Microsoft.CSharp 4.7.0, вы должны запустить эту команду в консоли диспетчера пакетов:

Install-Package Microsoft.CSharp -Version 4.7.0

Ссылка Nuget: Microsoft.CSharp

person Ramil Aliyev    schedule 15.01.2021
comment
После установки вам нужно закрыть решение и снова открыть его, чтобы оно заработало. - person ruben; 06.06.2021
comment
@ruben Спасибо за комментарий. Но я только что установил, я не открывал проект повторно - person Ramil Aliyev; 07.06.2021