【问题标题】:Can the .NET 5 SDK be used to compile .NET Core 3.1 projects?.NET 5 SDK 可以用来编译 .NET Core 3.1 项目吗?
【发布时间】:2021-04-29 14:32:42
【问题描述】:

我们正在使用 .NET 5 启动一个新项目。构建服务器安装了 .NET Core 3.1 SDK。我还计划在同一台服务器上并排安装 .NET 5 SDK。我可以删除 .NET Core 3.1 SDK 并使用 .NET 5 编译这两种类型的项目吗?

【问题讨论】:

  • 你试过了吗?发生了什么?这里有两个不同的东西:构建工具框架参考程序集;如果 TFM 的框架参考程序集退出,您绝对可以使用 .NET 5 构建工具来构建针对几乎任何 TFM 的东西 - 但问题是:.NET 5 是否包含 .NET Core 3.1 框架参考程序集,供其使用在构建过程中。我怀疑它没有,所以你需要两个 SDK。
  • @MarcGravell 是的,我正在尝试在我的 PC 上使用 .NET 5 SDK 构建一个 3.1 项目,目前看来还可以。我注意到 Visual Studio 2019 将 dotnet.exe 版本 5.0.5 放在 PC 上,但它也支持创建和构建 .NET 3.1 Core 项目模板。
  • 您可以在命令行中使用dotnet --info 来查看安装了哪些运行时(以及安装了哪些构建SDK,但您感兴趣的可能是运行时)
  • --info 更清楚地说明了它是如何工作的。我还查看了安装文件夹 C:Program Files\dotnet。 sdk 下有多个版本的子文件夹。该产品的设计清楚地考虑了并排场景。在我安装 .NET 5 后,它用新版本替换了 dotnet.exe,然后添加了一个新的 5.0.202 sdk 子文件夹。我之前的 .NET Core 3.1 项目不受影响。很不错的设计!

标签: .net .net-core


【解决方案1】:

是的,.NET 5 SDK 可以并且很容易编译 .NET Core 3.1 项目。您需要适当地设置<TargetFramework>。如果不设置<LangVersion>,则很容易出错并使用以后的语言功能,但生成的二进制文件将使用 .NET Core 3.1 运行。

引用可能不存在,但如果它们不存在,dotnet restore 将获取它们就好了。

【讨论】:

    【解决方案2】:

    无需删除 .NET Core 3.1。安装 .NET 5 后,添加了一个新的 SDK 子文件夹,并保留了 3.1 的现有 SDK 文件夹。现在可以在服务器上构建任一 SDK 版本的项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-15
      • 2021-05-13
      • 2022-06-30
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      • 2021-03-20
      • 2020-08-17
      相关资源
      最近更新 更多