gpt4 book ai didi

c# - .NET 5 如何构建 netcoreapp3.1?

转载 作者:行者123 更新时间:2023-12-03 20:23:49 28 4
gpt4 key购买 nike

我正在构建一个 Azure Function 项目,所以我不能以 .NET 5 为目标。相反,我的项目是一个 netcoreapp3.1 .
但是,当我的项目构建时,只要打印了一些信息,我就会看到提到了 dotnet 5。例子:

##[warning]/usr/share/dotnet/sdk/5.0.101/Microsoft.Common.CurrentVersion.targets(2123,5): Warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Text.Json, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.


(我在 System.Text.Json 中遇到的问题本身就是一个问题,在这篇文章中,我想了解 .NET 5 如何构建 netcoreapp3.1)。
我的系统上安装了 .NET Core 3.1,紧挨着 .NET 5。为什么构建系统不使用 3.1?我相信 .NET 5 与 3.1 相比有一些突破性的变化,所以我不确定使用 .NET 5 来构建项目是否可以。
同样的事情发生在 Azure DevOps Pipeline 构建和本地。在本地,在 Rider 中,我在构建时也看到了这一点:

CONSOLE: Use build tool: /usr/share/dotnet/sdk/5.0.102/MSBuild.dll


这是 ll /usr/share/dotnet/sdk 的结果:
drwxr-xr-x 28 root root  12K sty 13 08:24 3.1.405/
drwxr-xr-x 28 root root 12K sty 13 08:24 5.0.102/
如您所见,我有 3.1 和 5。

最佳答案

你需要分开三件事:

  • 用于执行构建步骤的构建 SDK
  • 定义核心包中可用 API 功能的目标平台(由构建 SDK 使用)
  • 用于实际执行应用程序的运行时平台,预计支持目标平台的 API 功能

  • 本例中构建SDK为5,目标平台为3.1;很好 - 构建 SDK 5 在目标功能方面完全了解 .NET Core 3.1,因此它知道要做什么。只要运行时至少是 .NET Core 3.1,一切都应该没问题(如果我们假设在 future 的某个运行时环境中没有人对核心库进行重大更改)。
    构建 SDK 是 v5 的事实很有趣,但在很大程度上无关紧要 - 他们可以为构建 SDK 提供完全不同的版本号,并且一切仍然有效。保持它们同步很有用,所以你知道什么是什么。
    如果你真的想使用特定的构建 SDK 而不是默认的(这主要意味着:最高):这就是 global.json可以为您启用。

    关于c# - .NET 5 如何构建 netcoreapp3.1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65793800/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com