如何创建.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类库?
编辑/更新:
- 这只是似乎是一个编辑/智能感知的问题,因为尽管该编辑器警告,该.NETCoreApp并构建和运行,调用到类库。
- 我正在运行Resharper,我看到其他类型的项目遇到类似的问题:我检查了我有最新版本,并清除了Resharper缓存并重新启动了VS2105。
答
这是一个resharper问题。此时Resharper(v2016.1.2)不支持.NET Core 1.0。
有2个可能的解决方案:
- 卸载ReSharper的,和Visual Studio的本地智能感知作品。
- 安装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。再说一遍,如果您正在使用相同的解决方案开发库和应用程序,这只会起作用。
感谢您的有用答案,但它没有解决我的问题,这是下一步 - 一旦我有我的.NET核心应用程序(这是工作),并添加到.NETStandard库的依赖项,Visual Studio不会识别库 - 我的意思是:任何试图引用库中的类的尝试都会通过消息'Can not resolve symbol'LibraryName''突出显示为错误。我会更新我的问题以消除任何含糊之处。 – Peter
@Ettery我认为问题在于参考不正确。有道理,你从Resharper得到了一个误报(我也遇到过)。 –