我是这个领域的新手。我已经使用更新3升级了我的VS2015。所以现在我已经安装了预览工具2的.Net Core 1.0.0。
然后我使用VS2015创建一个新的.Net Source项目(类库)。我已将一些现有的.net 4.6.1代码复制到新位置并按预期编译错误。然后我使用“移植分析器工具”(https://docs.microsoft.com/en-us/dotnet/articles/core/porting/index)进行比较,它确实提供了一些如何在.Net Core中使用新方法的建议。
但是仍然有很少的类缺失并且无法编译,比如'TypeDescriptor'或'NullableConverter'等。然后我用Google搜索并且来自Github的人说他们已经添加了这些功能但我仍然不确定为什么我仍然会出现编译错误。< / p>
我还注意到我的类libary项目有一个project.json文件:
Norm_Dict = { "x" : "y", "m" : "n"}
for key in Norm_Dict:
print ("key: %s , value: %s" % (key, Norm_Dict[key]) )
我发现如果我删除'netstandard1.6',但改为:
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
}
所有的编译错误都消失了,但我猜它不再是.Net核心项目,更可能是标准的.Net 4.6.1项目。
所以基本上我想问:
为什么Github的开发人员说已经修复但我仍然无法在我的项目中找到/编译这些类(例如TypeDescriptor:https://github.com/dotnet/corefx/issues/8262)?
一些样本也同时放入'net461'和&amp; project.json文件中'frameworks'下的'netstard1.6'或'netcoreapp1.0'。这是为了什么目的?
如果我只使用'net461'作为唯一框架,那么传统的.Net Framework 4.6.1项目似乎没什么区别。我对么?
非常感谢!
答案 0 :(得分:7)
net461
适用于应在(完整).NET Framework(在Windows或Mono下)运行的应用程序。 netcoreapp1.0
用于应在.NET Core下运行的应用程序。 netstandard1.6
(avoid using netstandard1.5
and netstandard1.6
by the way - use previous versions)用于可移植类库,它们应该在不同的平台上运行:(完整版).NET Framework,.NET Core,Xamarin,通用Windows应用程序等。您可以阅读更多关于here和here。