2016-11-28 214 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