ASP.NET核心项目在其引用项目中找不到类/方法



作为初学者,我试图遵循正确的方法来创建类库项目或asp.net core webapi。我的情况是:

1)我使用.NET Core创建了一个类库项目(我们称其为" AAA")。我知道,类库的框架应为" NetStandard1.6 "。我定义了1个静态类及其方法。

2)然后,我创建另一个ASP.NET Core WebAPI项目,让我们称其为'bbb'project.json文件中的默认框架。

然后在项目BBB中 - "参考"我将项目AAA添加为参考。没有错误。但是,如果我尝试使用Prject AAA中定义的静态类/方法,Visual Studio告诉我找不到静态类。(而不是传统的.NET项目,它将自动流行建议,如果我单击链接,则自动添加代码并为我进行整理。)

但是,如果我将鼠标移到红色错误部分的顶部,则VS(或重新示波器)确实建议"参考project aaa ... netStandstard,viss = v1.6',并使用project aaa.static class/method...."。但是,即使我单击该建议,仍然没有任何更改。

怎么做,我该如何解决?

非常感谢!

.NET标准库框架由.NET Core Class库使用,而不是您的.NET Core应用程序。

所以您的班级库有一个项目。

{
  "version": "1.0.0-*",
  "dependencies": {
    "NETStandard.Library": "1.6.0"
  },
  "frameworks": {
    "netstandard1.6": {
      "imports": "dnxcore50"
    }
  }
}

并将此类库引用为.NET Core应用程序,您必须在默认导入中添加depencency,并且它将起作用:

  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.1",
      "type": "platform"
    },
    "Microsoft.ApplicationInsights.AspNetCore": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.1",
    "Microsoft.AspNetCore.Routing": "1.0.1",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
    "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",
    "ClassLibrary1": "1.0.0-*"
  },
  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },

使用两个项目。

public static class Class2
{
    public static void Test()
    {
    }
}

我可以在Web应用程序控制器中调用此方法,例如:

[HttpGet]
public void TestStaticCall()
{
    ClassLibrary1.Class2.Test();
}

我最终从这篇文章中解决了这一点:https://github.com/aspnet/tooling/sissues/664。更新Resharper确实有帮助!非常感谢!

最新更新