dotnet核心中的MethodBuilder,ModuleBuilder和AssemblyBuilder在哪里?

时间:2017-02-06 19:28:52

标签: .net-core .net-standard

我正在将.Net Framework库迁移到.Net标准,编译器无法从System.Reflection.Emit找到核心构建器。

如果我在正确的位置,那么API文档会指出这些构建器(MethodBuilderModuleBuilderAssemblyBuilder)属于System.Reflection.Emit

这是我的图书馆的project.json

{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable"
  },
  "dependencies": {},
  "frameworks": {
    "netstandard1.6": {
      "dependencies": {
        "NETStandard.Library": "1.6.0"
      }
    }
  }
}

我还需要其他参考吗?

2 个答案:

答案 0 :(得分:9)

您可以在"System.Reflection.Emit": "4.3.0" nugget包中找到netstandard1.6框架。

答案 1 :(得分:2)

" animalito maquina"答案对我也有用,但我使用netstandard2.0对问题进行了一些调查。它可能与这个问题无关,但我想与你分享,因为它仍然可以帮助其他人:)。

我生成了两个项目(dotnet new):

  • " CLASSLIB"它默认使用netstandard2.0
  • ...和" console"它使用netcoreapp2.0

我在两个项目中添加了对AssemblyBuilder类的引用。 AssemblyBuilder在" classlib"中缺失已经使用netstandard2.0但在" console"中可用的项目project - netcoreapp2.0。

"问题"是由.NET Core Libraries are actually always a superset of the APIs defined in the corresponding version of the .NET Standard. There are always types and members available in the .NET Core Libraries, which are not (yet?) part of the .NET Standard.

引起的

这些链接可能会有所帮助: