我从Visual Studio开始了一个新的ASP.NET Core WebApi项目。项目初始化并开始没有问题。
现在我想添加一个.NET Core类库来包含与app分离的逻辑。我右键点击src
文件夹,选择Add -> New Project
并选择Class LOibrary (.NET Core)
。
在我的类库中,我创建了一个新的中间件:
namespace MyClassLib
{
public class MyMiddleware
{
private readonly RequestDelegate _next;
public MyMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext context)
{
await _next.Invoke(context);
}
}
}
并为其创建了扩展方法:
namespace MyClassLib
{
public static class MyMiddlewareExtensions
{
public static IApplicationBuilder UseMyMiddleware(this IApplicationBuilder builder)
{
return builder.UseMiddleware<MyMiddleware>();
}
}
}
到目前为止还没什么特别的。
在我的网络API中,我添加了对该项目的引用:
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
"Microsoft.ApplicationInsights.AspNetCore": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
"MyClassLib": "1.0.0-*"
}
但是当我尝试在我的WebApi startup
课程中使用我的新课程库时,它似乎无法识别它 - 显示using MyClassLib
红色(错误)并且不允许我使用其中的任何类。
我在这里缺少什么?在.NET Core之前,这是我以前常常做的事情......
修改
奇怪,但如果我禁用ReSharper比一切正常。如果我重新启用ReSharper而不是再次显示错误但仍然编译。我在RC1上遇到过这个问题的人看过GitHub上的帖子 - 但有人提到它是固定的。任何人都知道如何继续使用ReSharper和.NET Core?
答案 0 :(得分:2)
问题可能是NuGet图库中有一个名为MyClassLib
的{{3}},版本为existing package,因此NuGet可能会将其拉低并引用它。
为了指示项目系统使用本地项目而不是已发布的包,请尝试执行
"MyClassLib": { "target": "project" }