【问题标题】:ASP.NET 5 Class Libraries (Package) and target frameworksASP.NET 5 类库(包)和目标框架
【发布时间】:2016-01-08 14:02:31
【问题描述】:

在简单的情况下,我创建了一个新的解决方案,然后将一个新的 ASP.NET 5 Web 应用和一个类库(包)添加到该解决方案中。

每个项目都有默认的框架引用:
网络应用程序:dnxcore50 和 dnx451
类库(包):net451、dotnet5.4

如果我尝试将 Web 应用程序的引用添加到类库,则会出现问题。它添加成功,但是当我从库中创建一个类的新实例时,从网络应用程序中找不到任何东西。我相信这是因为类库必须支持项目中的框架。

我真的需要将所有 4 个框架都添加到我的类库吗?

  "frameworks": {
    "dnxcore50": { },
    "dnx451": { },
    "net451": { },
    "dotnet5.4": {
      "dependencies": {
        "Microsoft.CSharp": "4.0.1-beta-23516",
        "System.Collections": "4.0.11-beta-23516",
        "System.Linq": "4.0.1-beta-23516",
        "System.Runtime": "4.0.21-beta-23516",
        "System.Threading": "4.0.11-beta-23516"
      }
    }
  }

难道我不能只在类库中使用 dnxcore50 和 dnx451 并且仍然使用 System 命名空间吗?删除 net451 和 dotnet5.4 后,我会收到一堆关于 System 命名空间的错误。

【问题讨论】:

  • 如果您提供一个完整的示例,其中至少包含 一些 示例错误消息而不是“一堆错误”,这将非常有帮助。请注意,这些并不是真正的“框架引用”,而是“框架目标”。
  • 现在我一直在更改我的类库以匹配 Web 应用程序,即将 dotnet5.4 更改为 dnxcore50。 net451 似乎工作正常,所以我保持原样。您不想添加所有 4 个,因为 dnx451 与 net451 即桌面框架相同,而 dotnet5.4 与 dnxcore50 即 coreclr 相同
  • @JonSkeet 抱歉,我的错误是指我的 webapp 看不到类库。这意味着我无法向类库添加 using 语句。
  • @JoeAudette 似乎唯一可行的解​​决方案是将 dotnet5.4 更改为 dnxcore50 并保持 net451 不变。一旦我删除 net451 并用 dnx451 替换它,我就无法访问 System 命名空间,这完全没有意义,因为 dnx451 在 Web 应用程序中完全正常工作,我可以访问 System 命名空间。

标签: c# asp.net asp.net-core class-library .net-framework-version


【解决方案1】:

在您的类库中,删除 dnxcore50 和 dnx451

"frameworks": {
  "net451": { },
  "dotnet5.4": {
    "dependencies": {
      "Microsoft.CSharp": "4.0.1-beta-23516",
      "System.Collections": "4.0.11-beta-23516",
      "System.Linq": "4.0.1-beta-23516",
      "System.Runtime": "4.0.21-beta-23516",
      "System.Threading": "4.0.11-beta-23516"
    }
  }
}

【讨论】:

  • 这不起作用。那里有文档说类库必须具有与 asp.net 5 web 应用程序相同的框架目标,以便 asp.net 5 web 应用程序能够引用它。这意味着如果我的 webapp 有 dnxcore50 和 dnx451 指针,那么我必须将它们添加到类库中。我只是想知道为什么只有 dnxcore50 和 dnx451 (我的意思是网络应用程序找不到它)是目标框架时类库不起作用。我失去了对 System 命名空间的访问权限。
  • 其实你是对的,类库(包)开箱即用,无需更改任何框架目标。我猜我的智能感知有问题,或者我的笔记本电脑在添加参考后就落后了,所以这让我开始考虑改变框架。在我的桌面上,当添加一个新的 asp.net 5 项目和一个类库(包)时,一切都 100% 正常。引用项目中的类库。
猜你喜欢
  • 2016-03-25
  • 2016-05-02
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2020-03-05
  • 2015-10-18
相关资源
最近更新 更多