2016-11-28 157 views
4

我是这方面的新手。我已经升级了我的VS2015和更新3.所以现在我已经安装了预览工具2的.Net Core 1.0.0。.Net核心基本问题

然后我使用VS2015创建一个新的.Net源项目(类库)。我已经将一些现有的.net 4.6.1代码复制到了新的位置,并按预期编译了错误。然后我使用“移植分析工具”(https://docs.microsoft.com/en-us/dotnet/articles/core/porting/index)进行比较,并提出了一些建议,以便如何在.Net Core中使用新的方法。

但仍然有少数类丢失,无法编译,如'TypeDescriptor'或'NullableConverter'等。然后我google搜索和Github的人说他们已经添加这些功能,但我仍然不知道为什么我仍然得到编译错误。

我还注意到,我的课libary项目具有project.json文件:

"frameworks": { 
    "netstandard1.6": { 
     "imports": "dnxcore50" 
    } 
} 

我foundn如果我删除了 'netstandard1.6' 之一,但更改为:

"frameworks": { 
    "net461": {} 
} 

所有的编译错误消失了,但我可以猜测它不再是.Net核心项目,更可能是一个标准的.Net 4.6.1项目。

所以基本上我想问:

  1. 为什么开发商从Github上说已经是固定的,但我还是没找到/编译这些类在我的项目(例如TypeDescriptor:https://github.com/dotnet/corefx/issues/8262)?

  2. 一些示例还在project.json文件的'frameworks'下放置了'net461'&'netstard1.6'或'netcoreapp1.0'。这是什么目的?

  3. 如果我只是使用'net461'作为唯一的框架,似乎与传统的.Net Framework 4.6.1项目没有什么区别。我对么?

非常感谢!

回答

5
  1. 安装包System.ComponentModel.TypeConverter,你是好去与.NET的核心工程。
  2. 用于构建不同平台的不同输出(二进制文件)。对于应该在(完整).NET Framework(在Windows或Mono下)运行的应用程序,请使用net461netcoreapp1.0用于应该在.NET Core下运行的应用程序。 netstandard1.6avoid using netstandard1.5 and netstandard1.6 by the way - use previous versions)用于可移植类库,应该在不同平台下运行:(完整).NET Framework,.NET Core,Xamarin,通用Windows应用程序等。您可以阅读有关herehere的更多信息。
  3. 绝对。
+0

嗨Deilan,非常感谢您的文章! (1)在我安装包装后运作。另一个简单的问题是:我还创建了另一个[ASP.NET核心Web应用程序],我在括号中选择'.Net Framework'而不是'.Net Core'。其项目json文件然后显示框架的'net461'。那么这个网站/ webapi可以在Windows Docker/Container上运行吗? – Samuel

+0

@Samuel,似乎是。我不确定,所以我建议开始了解更多关于它的信息(https://hub.docker.com/r/microsoft/dotnet-framework/)。 – Deilan

+0

@Samuel请您接受答案? – Deilan