作为初学者,我试图按照正确的方式创建一个类库项目或ASP.Net核心webApi。我的情况是:
1)我使用.net Core创建了一个类库项目(让我们称之为“AAA'”)。类库的框架应该是" netstandard1.6 "我知道。我定义了1个静态类及其方法。
2)然后我创建了另一个Asp.Net核心WebApi项目,让我们称之为“BBB' project.json文件中的默认框架是" netcoreapp1.0 "然后
然后在项目BBB中 - '参考文献'我添加项目AAA作为参考。没有错误发生。但是,如果我尝试使用prject AAA中定义的静态类/方法,Visual Studio告诉我无法找到静态类。 (而不是传统的.Net项目,它会自动弹出建议,如果我点击链接,VS会自动添加代码并为我排序。)
但是,如果我将鼠标移到红色错误部分的顶部,VS(或重新锐化)确实建议像"参考prject AAA ... NETStandard,Version = v1.6'并使用项目AAA.static类/方法...."。然而,即使我点击该建议,仍然没有任何变化。
为何如此,我该如何解决?
非常感谢!!
答案 0 :(得分:0)
.NET标准库框架由.NET Core类库使用,但不是由.NET Core应用程序使用。
所以你的类库有一个像这样的project.json:
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
}
}
要将此类库引用到.NET Core应用程序中,您必须使用默认导入添加依赖性,它将起作用:
"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"
]
}
},
使用这两个project.json文件,引用很棒,如果我在类库中添加一个静态类,如:
public static class Class2
{
public static void Test()
{
}
}
我可以在Web应用程序控制器中调用此方法,例如:
[HttpGet]
public void TestStaticCall()
{
ClassLibrary1.Class2.Test();
}
答案 1 :(得分:0)
我终于通过这篇文章解决了这个问题:https://github.com/aspnet/Tooling/issues/664。更新Resharper确实有帮助!非常感谢每一个人!!