![](/img/trans.png)
[英]How to fix "error CS0656: Missing compiler required member 'Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create'"
[英]ASP.NET Core 1.1 compiling with C# dynamic Missing compiler required member 'Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create'
我正在使用 Visual Studio 2017 RC 並啟動了一個新的 ASP.NET 核心項目,目標是完整的 .NET 框架。
這行代碼不會編譯。
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'
經過一些谷歌搜索后,它看起來是因為我缺少 Microsoft.CSharp 程序集。 有很多人偶然發現了他的問題,但似乎不是 .NET Core 1.1。
所以我做了這個Install-Package Microsoft.CSharp
並獲得了 4.3.0 版。 我的項目仍然無法構建。
如果我將程序集引用添加到 Microsoft.CSharp(GAC 版本),那么它會編譯並運行。
這是一個錯誤嗎? 我本來希望 NuGet package 能解決這個問題?
只需添加 Microsoft.CSharp.dll 的引用,您的錯誤將被刪除。
我遇到了這個問題。 我為我解決了這個問題。 您必須從 nuget 將Microsoft.CSharp
庫安裝到您的解決方案中。
您可以使用包管理器控制台安裝Microsoft.CSharp 。 例如,如果要安裝 Microsoft.CSharp 4.7.0 版本,則必須在包管理器控制台上運行此命令:
Install-Package Microsoft.CSharp -Version 4.7.0
Nuget 鏈接: Microsoft.CSharp
有一個類似的問題。 我想為uses a dynamic object
的 NetFramework 4.6.2 環境創建一個 NetStandartd 2.0 庫,但出現錯誤“Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create”。 此錯誤是由於缺少of the Microsoft.CSharp library
引起的。 通過correcting.csproj
文件,我能夠to make the correct linking
:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0;net462</TargetFramework>
<DependsOnNETStandard>netstandard2.0</DependsOnNETStandard>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
</Project>
我在嘗試將類型
dynamic<\/code>隱式轉換為
object<\/code>時遇到了這個問題。
var output = new Dictionary<string, object>(); // <- object
foreach(var attribute in attributes)
{
var attr = attribute as IEntityAttribute<dynamic>; // <- dynamic
if (attr != null)
{
output.Add(attr.GetType().Name, attr.Value);
}
}
return output;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.