我有點困惑。我發現這個問題是針對運行時的。它還針對 SDK 并說:
Edit .NET Core 3.x SDK has been released. Unlike v2.2 and the previous releases before it, this version does not support the ability to target previous runtimes (i.e. netcoreapp2.2, netcoreapp2.1, etc)That means, you do not need to install more than one SDK on your build server if you want to build against multiple runtimes (even though you could).
但我可以使用global.jswith dotnet sdk 6 來定位 dotnetcore 3 應用程式。
對我來說,看起來我只需要最新的 SDK 就可以構建之前的所有內容,對吧?
如果是這樣,那是如何實作的,每個新的 SDK 是否都會包含所有其他 SDK?或者 ms(我聽說 Java 也一樣)如何實作向后兼容性?
uj5u.com熱心網友回復:
這里有一些不同的東西在起作用。
global.json讓您選擇要使用的 SDK。如果您安裝了多個 SDK,則不是要定位哪個(運行時),而是要使用哪個 SDK。
要選擇要定位的運行時,請使用檔案中的TargetFramework元素.csproj。例如,<TargetFramework>netcoreapp3.1</TargetFramework>
SDK 的最新版本允許您針對較舊的運行時。6.0 SDK 將讓您以 3.1 運行時為目標而不會出現任何問題。
盡管如此,多個版本的 SDK 可能會生成不同的代碼或執行不同的操作,從而破壞您的應用程式。使用匹配的 SDK 和運行時可能是最安全的選擇。
如果您正處于開發程序中(例如,dotnet build)或構建了一個框架依賴應用程式(一個不是自包含的應用程式,需要一個 .NET 運行時才能作業),您將需要安裝匹配的運行時來運行該應用程式。新的 SDK 沒有舊的運行時。
對于所有其他(自包含)應用程式,運行時的所有版本(當前和舊版本)都可以作為 nuget 包使用。SDK 將它們拉下來并在構建應用程式時使用它們。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/406526.html
標籤:
上一篇:ASP.NETCore3發布單個exe還包括wwwroot
下一篇:回傳查找值SOLID和干凈的架構
