如何创建.NET核心库我可以从.NET核心应用程序(Web API)中引用

问题描述:

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

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

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

编辑/更新:

  1. 这只是似乎是一个编辑/智能感知的问题,因为尽管该编辑器警告,该.NETCoreApp并构建和运行,调用到类库。
  2. 我正在运行Resharper,我看到其他类型的项目遇到类似的问题:我检查了我有最新版本,并清除了Resharper缓存并重新启动了VS2105。

这是一个resharper问题。此时Resharper(v2016.1.2)不支持.NET Core 1.0。

有2个可能的解决方案:

  1. 卸载ReSharper的,和Visual Studio的本地智能感知作品。
  2. 安装Resharper 2016.2 EAP(Early Access Program)版本。我已经完成了这个工作。显然它带有任何EAP/beta产品的警告。

下面是一个指向Jetbrains forum post的链接,我被告知.NET Core 1尚未支持并指向EAP版本。

一旦你已经建立了针对netstandard1.X库,您可以:

  • 产生一个NuGet包与dotnet pack,并将其驻留在本地或的NuGet。然后,将其作为任何其他依赖项安装在您的netcoreapp项目中。
  • 如果库和应用程序是同一解决方案的一部分,使本地参考:

project.json

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

target: project告诉dotnet在依赖目前的解决方案看,而不是使用您的NuGet Feed。再说一遍,如果您正在使用相同的解决方案开发库和应用程序,这只会起作用。

+0

感谢您的有用答案,但它没有解决我的问题,这是下一步 - 一旦我有我的.NET核心应用程序(这是工作),并添加到.NETStandard库的依赖项,Visual Studio不会识别库 - 我的意思是:任何试图引用库中的类的尝试都会通过消息'Can not resolve symbol'LibraryName''突出显示为错误。我会更新我的问题以消除任何含糊之处。 – Peter

+0

@Ettery我认为问题在于参考不正确。有道理,你从Resharper得到了一个误报(我也遇到过)。 –