Dot-Net
除了 dnx451 之外,創建 dnx50 建構目標是否有任何區別/原因?
通常我們在 中看到以下目標
project.json:"frameworks": { "net45": {}, "dnx451": {}, "dnxcore50": { } }
dnxcore50將是項目程式碼的唯一可移植版本,dnx451實際上針對 .Net 4.5.1 mscorlib 等…現在,如果我添加另一個名為 的目標
dnx50,這將創建一個有效的輸出並且工作得很好。dnx451 和 dnx50 之間的區別在於,它引用了不同的 .Net 程序集 dll
例如
mscorlib.dll:
- dnx451參考資料
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\mscorlib.dll- dnx50引用
C:\Windows\Microsoft.NET\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll本質上是 .net 4.6 版本。現在的問題是:
dnx50例如,為您的自定義庫創建該目標是否有意義?基本上以.net 4.6為目標,您需要dnxcore50攜帶式設備沒有的某些功能嗎?或者
dnx451目標實際上是否足夠,如果我不需要更新的 .net 版本(4.5.2、4.6)中的特定功能,那麼這個目標無論如何都會使用 .net 4.6,如果它安裝在系統上並且我’我只是針對我的項目所需的最低版本?這是否意味著同時擁有 dnx451 和 dnx50 目標實際上會創建相同的輸出,對嗎?
有關完整詳細資訊,請參閱此問題。以下是您可以使用的所有不同類型的列表:
dnxcore50- 在 CoreCLR/CoreFx 上執行的 DNX SDKdnx451- 在 .Net 4.5.1 上執行的 DNX SDK(桌面 CLR/完整 BCL 和 FCL)net46- 在 .Net 4.6(桌面 CLR/完整 BCL 和 FCL)上執行的 .Net Framework SDK。uap10.0- 在 .Net Native/CoreFx 上執行的 UWP SDKdotnet- 任何聲明其依賴關係的純 IL 程式碼(而不是 PCL 合約)。框架依賴項可用於 .Net 4.6、DNX 或 UWP。對於 .NET 4.5,您需要將其
dnx45用於 ASP.NET 項目和net45其他以 .NET 4.5 為目標的項目。你定位哪一個取決於你想做什麼,你甚至可以一次定位多個。目前 .NET Core (DNX) 的功能非常有限。如果這還不夠,那麼針對
dnx46使用 .NET 4.6 的 ASP.NET 5 和使用 .NET 4.6net46的其他項目的完整 .NET 執行時。