.Net Core 1.0几天前已经发布,我已经开始玩了它。我创建了一个简单的解决方案,一个项目(类库=> .NetStandard.Library)和第二个,控制台应用程序(.NetCoreApp)。关键是,控制台应用程序引用了库,但我不能使用类型形式的库。这两个框架是不兼容的吗?我错过了什么吗?
用于控制台应用程序的project.json:
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"ConsoleApplicationLibrary": "1.0.0-*",
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
}
project.json for library:
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
}
}
我已经弄明白了,它有效,并且代码编译,但是Visual Studio仍然将库中的类型突出显示为未知。
答案 0 :(得分:1)
最可能的问题是.Net Core期望ConsoleApplicationLibrary
成为NuGet包。如果要引用项目,请使用"ConsoleApplicationLibrary": {"target": "project", "version": "1.0.0-*"}
。
执行此操作后,请不要忘记恢复包。
答案 1 :(得分:1)
好的,这很奇怪,但是在禁用resharper,重新启动VS并重建解决方案之后,它运行正常。似乎有针对.net核心的resharper支持的问题。 (resharper v.9.1.3)。从这个:resharper ultimate blog我明白,目前只有终极版本支持.net核心。
答案 2 :(得分:1)
.NetCoreApp 是一个平台, .NetStandard.Library 是一个应该是跨平台(可移植类库)的库,适用于各种.NET平台运行时。
您可以在任何支持的.NET平台项目中包含NetStandard.Library的直接引用(包),例如.NETCoreApp(Dot Net Core 1.X)
参考:https://docs.microsoft.com/en-us/dotnet/articles/standard/library
答案 3 :(得分:0)
我遇到了同样的问题,事实证明我需要将Resharper更新为最新版本。我有v9.1.1所以我把它更新到2016.3.2并解决了这个问题。