Dot-Net

除了 dnx451 之外,創建 dnx50 建構目標是否有任何區別/原因?

  • October 15, 2015

通常我們在 中看到以下目標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 SDK
  • dnx451- 在 .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 SDK
  • dotnet- 任何聲明其依賴關係的純 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 執行時。

引用自:https://stackoverflow.com/questions/30600268