作为初学者,我试图遵循正确的方法来创建类库项目或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确实有帮助!非常感谢!