【问题标题】:How to create a .NET Core library I can reference from a .NET Core App (Web API)如何创建我可以从 .NET Core 应用程序(Web API)引用的 .NET Core 库
【发布时间】:2016-07-25 13:01:24
【问题描述】:

我正在使用 Visual Studio 2015 Update 3 和 .NET Core 1.0。我有一个 .NETCoreApp v1.0 类型的 Web API 项目。当我添加一个 .NET Core 类库时,它的类型是 .NETStandard v1.6。我可以将此库添加到 Web API 项目中作为参考,但是当我尝试添加 using 语句时无法识别它。

如果我创建另一个 .NETCoreApp 类型的项目,我可以引用它并毫无问题地使用这些类。

如何使用 .NET Core 应用程序中的 .NET Core 类库?

编辑/更新:

  1. 这似乎只是一个编辑器/Intellisense 问题,因为尽管有编辑器警告,.NETCoreApp 确实会构建并运行,调用类库。
  2. 我正在运行 Resharper,我发现它与其他类型的项目存在类似问题:我检查了我是否拥有最新版本并已清除 Resharper 缓存并重新启动 VS2105。

【问题讨论】:

    标签: .net-core asp.net-core-1.0


    【解决方案1】:

    这是一个 Resharper 问题。目前 Resharper (v2016.1.2) 不支持 .NET Core 1.0。

    有两种可能的解决方案:

    1. 卸载 Resharper,Visual Studio 原生智能感知正常工作。
    2. 安装Resharper 2016.2 EAP(抢先体验计划)版本。我已经做到了,它正在工作。显然,它带有任何 EAP/beta 产品的警告。

    这是Jetbrains forum post 的链接,我被告知 .NET Core 1 尚不支持并指向 EAP 版本。

    【讨论】:

      【解决方案2】:

      一旦您构建了一个以netstandard1.X 为目标的库,您可以:

      • 使用dotnet pack 生成 NuGet 包并将其托管在本地或 NuGet 上。然后,将其作为任何其他依赖项安装到您的 netcoreapp 项目中。
      • 如果您的库和应用程序属于同一解决方案,请进行本地引用:

      project.json

      "dependencies":{
          "MyLibrary.Core": {
              "version": "1.0.0",
              "target": "project"
          }
      }
      

      target: project 告诉dotnet 在当前解决方案中查找依赖项,而不是使用您的 NuGet 提要。同样,这仅在您在同一解决方案中开发库和应用程序时才有效。

      【讨论】:

      • 感谢您提供有用的答案,但它不能解决我的问题,这是下一步 - 一旦我拥有我的 .NET Core 应用程序(正在运行)并添加到 .NETStandard 库的依赖项, Visual Studio 无法识别该库 - 我的意思是:任何引用库中类的尝试都将突出显示为错误消息Cannot resolve symbol 'LibraryName'。我将更新我的问题以消除任何歧义。
      • @Ettery 我认为问题在于引用不正确。你从 Resharper 得到误报是有道理的(我也遇到过)。
      猜你喜欢
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      • 2019-07-17
      • 2020-01-25
      • 1970-01-01
      • 2019-12-29
      • 2017-04-28
      • 1970-01-01
      相关资源
      最近更新 更多