【问题标题】:ASP.Net 5 Application referencing .NET Framework 4.6 assemblyASP.Net 5 应用程序引用 .NET Framework 4.6 程序集
【发布时间】:2016-05-04 20:09:38
【问题描述】:

我正在尝试从我的 ASP.NET 5 项目中引用一个 .NET 4.6 程序集。我正在运行 ASP.NET 和 Web Tools 2015(RC1 更新 1)。

我已阅读以下问题,但无法正常工作:ASP.NET 5 Application Reference .NET 4.6 DLL

我还阅读了以下问题,但我什至无法构建项目:Referencing a .NET 4.6 project from ASP.NET 5 causes build error

当引用程序集上的目标框架设置为 4.5.1 时,我可以构建并运行应用程序,但是当引用程序集上的目标框架更改为 4.6 时,编译器会报告以下错误:

“找不到类型或命名空间名称‘ClassLibrary’(是否缺少 using 指令或程序集引用?)”

以下是我的 project.json 文件的一些部分,其中“ClassLibrary”是我引用的 .Net 4.6 程序集。

"dependencies": {
  "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
  "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
  "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
  "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
  "Microsoft.Extensions.Configuration.FileProviderExtensions" : "1.0.0-rc1-final",
  "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
  "Microsoft.Extensions.Logging": "1.0.0-rc1-final",
  "Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
  "Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final"
},

"commands": {
  "web": "Microsoft.AspNet.Server.Kestrel"
},

"frameworks": {
  "dnx46": {
    "dependencies": {
      "ClassLibrary": "1.0.0-*"
    }
  },
},

【问题讨论】:

  • 将“dnx46”更改为“net46”没有帮助。我仍然得到同样的错误。但正如我在最初的问题中所说,如果将引用库的目标框架更改为 4.5.1,则一切正常。

标签: c# asp.net-core-1.0 asp.net5


【解决方案1】:

为了在您的 DNX 项目中使用 .NET 4.6 库,您需要正确定位框架。您当前的目标是 dnx46,它与 net46 不同。

改变这个:

"frameworks": {
  "dnx46": {
    "dependencies": {
      "ClassLibrary": "1.0.0-*"
    }
  }

到这里:

"frameworks": {
  "net46": {
    "dependencies": {
      "ClassLibrary": "1.0.0-*"
    }
  }

Scott Allen 有一篇关于 DNX 选项的精彩文章 here。请注意,DNX 即将退役,而这一切都将很快随着 .NET Core 而改变。

【讨论】:

    猜你喜欢
    • 2017-10-08
    • 2016-10-17
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 2016-09-18
    • 1970-01-01
    相关资源
    最近更新 更多