在dotnet核心SDK版本之间切换

Avi*_*ale 36 c# .net-core asp.net-core

我最近安装了VS 2017 RC,然后自动指向我的dotnet版本1.0.0-preview4-004233.由于每当我用命令来创建一个新的项目dotnet new -t Console,我不能看project.json,虽然我看到.csproj文件.

当我检查我的机器上可用的dotnet版本时 - C:\Program Files\dotnet\sdk我看到有多个版本可用.

有没有办法将dotnet核心切换回早期版本 - 1.0.0-preview2-0031331.0.0-preview4-004233无需卸载.

Set*_*Set 56

您可以使用global.json项目根目录中的文件执行此操作:

  • 验证计算机上的SDK列表:
dotnet --list-sdks
Run Code Online (Sandbox Code Playgroud)

你会看到这样的清单.

2.1.100 [C:\Program Files\dotnet\sdk]
2.1.101 [C:\Program Files\dotnet\sdk]
2.1.103 [C:\Program Files\dotnet\sdk]
2.1.104 [C:\Program Files\dotnet\sdk]
[...lines omitted...]
2.1.601 [C:\Program Files\dotnet\sdk]
2.2.101 [C:\Program Files\dotnet\sdk]
3.0.100-preview3-010431 [C:\Program Files\dotnet\sdk]
Run Code Online (Sandbox Code Playgroud)
  • 创建一个文件夹作为项目的根目录,您将在其中运行dotnet new.
  • 在该文件夹中,dotnet new globaljson使用要从version列表中使用的.NET Core版本号创建这样的文件:
{
  "sdk": {
    "version": "3.0.100-preview3-010431"
  }
}
Run Code Online (Sandbox Code Playgroud)
  • 打开终端并转到创建的文件夹
  • 运行3.0.100-preview3-010431以验证.你应该看到:
{
  "sdk": {
    "version": "2.2.101"
  }
}
Run Code Online (Sandbox Code Playgroud)
  • 运行--list-sdks命令

  • 这个答案是一个救星。在尝试构建 NopCommerce 插件时遇到了几天的麻烦,最终发现 .net core 3 以微妙的方式破坏了构建行为,并且由于某种原因默认用于构建“netcoreapp2.1”应用程序。该修复将“global.json”中的 dotnet 版本修复为 2.1。多谢! (2认同)

小智 10

当我们在操作系统上安装每个 dotnet core SDK 时,每个项目都可以单独使用 SDK 版本。因为SDK是全局安装的。我们可以通过以下命令创建来配置每个项目设置global.json

dotnet new globaljson
Run Code Online (Sandbox Code Playgroud)

并最终选择了正确的版本。

选择SDK版本的流程为:

  • dotnetglobal.json从当前工作目录向上迭代地反向导航路径来搜索文件。
  • dotnet使用第一个找到的指定的SDK global.json
  • dotnet如果没有找到,则使用最新安装的 SDK global.json

参考文献: https://learn.microsoft.com/en-us/dotnet/core/tools/global-json ?tabs=netcore3x#globaljson-and-the-net-core-cli

一步一步: /sf/answers/2945464231/


Ale*_*ros 6

Dotnet 通常使用最新的 SDK 版本,除非它找到一个 global.json 文件,告诉它不这样做。 微软的解释

dotnet 在工作目录(不一定是项目或解决方案目录)中查找文件,如果找不到,它会从那里开始向上搜索。 文件

创建 global.json 文件的一种简单方法是dotnet new globaljson --sdk-version 1.0.0-preview2-003133在项目目录中运行。 从 cli 创建一个 global.json