在 dotnet core SDK 版本之间切换
Posted
技术标签:
【中文标题】在 dotnet core SDK 版本之间切换【英文标题】:Switch between dotnet core SDK versions 【发布时间】:2017-06-23 22:51:16 【问题描述】:我最近安装了 VS 2017 RC,然后我的 dotnet 版本自动指向 1.0.0-preview4-004233
。因此,每当我使用命令dotnet new -t Console
创建一个新项目时,虽然我看到了.csproj
文件,但我看不到project.json
。
当我在 C:\Program Files\dotnet\sdk
检查我的机器上可用的 dotnet 版本时,我看到了多个可用版本。
有什么方法可以将 dotnet core 切换回早期版本 - 1.0.0-preview2-003133
从 1.0.0-preview4-004233
无需卸载。
【问题讨论】:
asdf-vm.com 可以切换dotnet-core版本,包括sdk 【参考方案1】:您可以使用项目根目录中的 global.json
文件来执行此操作:
dotnet --list-sdks
你会看到这样的列表。
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]
创建一个文件夹作为项目的根目录,您将在其中运行dotnet new
。
在该文件夹中,运行以下命令:dotnet new globaljson
结果将如下所示:
"sdk":
"version": "3.0.100-preview3-010431"
在version
中,将3.0.100-preview3-010431
替换为--list-sdks
列表中您喜欢的版本。例如:
"sdk":
"version": "2.2.101"
运行dotnet --version
进行验证。您应该会看到:
2.2.101
运行适当的dotnet new
命令来创建您的项目。
【讨论】:
在VS2017 CE
上安装 dot net core 时遇到问题:VS 在选择工作负载时会安装最新的 dot net core 版本(在撰写此评论时为 v2)。我也安装了 .net core v1.0.4(项目需要它),但 VS 根本无法识别它。使用这种方法解决了这个问题。
我有一个多项目解决方案。我尝试将此 global.json 添加到解决方案文件夹和 web api 项目文件夹以强制 2.1.403,但该项目继续发布 2.1.5 - 知道我做错了什么吗?
@Darren 您能否运行dotnet --list-sdks
来验证您的系统上是否确实安装了 2.1.403 SDK?
有没有办法切换整个系统的dotnet SDK版本?那么所有的解决方案都会默认使用这个版本?
这个答案是救命稻草。几天来尝试构建 NopCommerce 插件时遇到了麻烦,最终结果证明 .net core 3 以微妙的方式破坏了构建行为,并且由于某种原因默认用于构建 netcoreapp2.1
应用程序。修复将global.json
中的dotnet 版本修复为2.1。非常感谢!【参考方案2】:
Dotnet 通常使用最新的 SDK 版本,除非它找到一个 global.json 文件告诉它不这样做。 The explanation by microsoft
dotnet 在工作目录(不一定是项目或解决方案目录)中查找文件,如果找不到,则从那里开始向上搜索。 documentation
创建 global.json 文件的一种简单方法是在项目目录中运行 dotnet new globaljson --sdk-version 1.0.0-preview2-003133
。
create a global.json from the cli
【讨论】:
【参考方案3】:当我们在 OS 上安装每个 dotnet core SDK 时,每个项目可以单独使用 SDK 版本。因为 SDK 有全局安装。我们可以通过这个命令创建global.json
来配置每个项目的设置:
dotnet new globaljson
最终选择了正确的版本。
选择SDK版本的流程是:
dotnet
搜索 global.json
文件迭代反向导航
从当前工作目录向上的路径。
dotnet
使用在找到的第一个 global.json
中指定的 SDK。
如果没有找到global.json
,dotnet
使用最新安装的 SDK。
参考资料: https://docs.microsoft.com/en-us/dotnet/core/tools/global-json?tabs=netcore3x#globaljson-and-the-net-core-cli
一步一步: https://***.com/a/42078060/14557383
【讨论】:
【参考方案4】:你可以签入 global.json
运行命令 dotnet --list-sdks
你会看到结果
2.2.110 [C:\Program Files\dotnet\sdk] 5.0.103 [C:\Program Files\dotnet\sdk]
【讨论】:
这将列出。好的。然后切换?以上是关于在 dotnet core SDK 版本之间切换的主要内容,如果未能解决你的问题,请参考以下文章
迷失在版本和工具中:.NET Core、Core Tools、dotnet Core CLI、
dotnet跨平台微软昨天宣布正式发布.NET Core RC2和.NET Core SDK Preview 1,还有Entity Framework Core RC2
Visual Studio 2019 16.1 使用 .NET Core 3.0
VS2019打开项目加载失败:无法找到 .NET Core SDK。请检查确保已安装此项且 global.json 中指定的版本(如有)与所安装的版本相匹配。