簡體   English   中英

ASP.NET Core 1.1 使用 C# 動態編譯 缺少編譯器需要成員 '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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM