【问题标题】:dotnet core 3.0 unable to locate the dotnetcore sdk when opening solution in vsdotnet core 3.0 在 vs 中打开解决方案时无法找到 dotnetcore sdk
【发布时间】:2021-06-01 18:06:51
【问题描述】:

我正在尝试在https://github.com/aspnet/aspnetcore 加载 ASP.NET Core MVC 的源代码。但是,当我克隆项目、签出 v3.0.0 并尝试在 Visual Studio 2019 (v16.3.4) 中打开解决方案时,所有项目都出现以下错误

无法找到 .NET Core SDK。检查是否已安装并且 global.json 中指定的版本(如果有)与安装的版本匹配

我已确保 .net core 3.0 sdk 已下载到我的计算机上,并且运行 dotnet --info 会产生以下数据:

Microsoft.NETCore.App 3.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

查看.csproj文件,都是针对

<TargetFramework>netcoreapp3.0</TargetFramework>

此外,我已确保 SDK 'C:\Program Files\dotnet' 的路径包含在我的 PATH 变量中。我尝试添加一个指定 sdk 的 global.json 文件,但似乎没有什么不同。

知道是什么导致了这个问题吗?

编辑

以下是csproj文件的示例

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <Description>ASP.NET Core metadata.</Description>
    <TargetFramework>netstandard2.0</TargetFramework>
    <IsAspNetCoreApp>true</IsAspNetCoreApp>
    <IsShippingPackage>true</IsShippingPackage>
    <NoWarn>$(NoWarn);CS1591</NoWarn>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
    <PackageTags>aspnetcore</PackageTags>
  </PropertyGroup>

</Project>

,这里是我机器上所有 SDK 的文件夹。

【问题讨论】:

  • 关闭再打开VS。这解决了我的几次
  • 从命令行运行dotnet --list-sdks会得到什么?您确定在安装 Visual Studio 时安装了 .NET Core SDK 吗?我会运行安装程序并检查是否包含工作负载。
  • 当我执行 dotnet --list-sdks 时,它确实包含 3.0 sdk (3.0.100 [C:\Program Files\dotnet\sdk])。此外,我已经打开和关闭了几次,结果相同

标签: c# asp.net-core asp.net-core-3.0


【解决方案1】:

我有同样的问题,我找到了解决方案; 我希望你和我有同样的问题。

cmd -> 输入dotnet --info
复制 .Net Core 的“基本路径”
只需将其添加到系统的 Path 变量中即可。

变量名是MSBuildSdksPath

更多详情,你可以查看这个https://github.com/aspnet/Announcements/issues/231

【讨论】:

    【解决方案2】:

    一些可能的原因:

    • 需要重启电脑,因为缓存了环境变量
    • 您需要重新启动 Visual Studio,因为 Visual Studio 也会缓存(关闭它的所有实例)
    • 您已安装 64 位版本的 SDK,但您需要 32 位 SDK,反之亦然。
    • 您已安装旧的预览版 sdk,需要在 Visual Studio 的选项中启用预览版(或下载非预览版 SDK,因为它是 RTM)

    你可以试试我学到的一个技巧:
    打开命令行提示符,然后输入 env
    获取路径环境变量

    应该有

    C:\Program Files\dotnet\;
    C:\Program Files (x86)\dotnet\;
    

    在里面。

    现在将C:\Program Files\dotnet\; 替换为D:\Programs\LessPortableApps\dotnet\,其中D:\Programs\LessPortableApps\dotnet\ 是您放置dotnet-sdks 的文件夹。

    然后,将路径环境变量 SET PATH="bla" 设置为您的新路径,并替换 dotnet 文件夹。

    然后从命令提示符启动 Visual Studio,例如:

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.exe
    

    这样,您可以在没有管理员权限的情况下使用 .NET SDK 来安装它们。

    还有一件事:
    .NET Core 3.0 需要 Visual Studio 2019,如果你有 2017,你只能使用它,如果你安装了 msbuild(与 VS2019 相同的版本)。

    要安装最新(截至 2019 年)的独立 MSBuild,请转到:https://www.visualstudio.com/downloads/ 并向下滚动到“Visual Studio 2017 工具”并选择“Visual Studio 2019 构建工具” (适用于不想要完整 IDE 的用户)

    Direct link

    【讨论】:

    • 我已经尝试了以上所有方法,但似乎没有任何效果。我想知道是否有任何进一步的诊断信息可用 - 例如,我的计算机上是否有一个编译日志,用于声明“无法找到 .NET Core SDK”,我可以在其中检查 Visual Studio 已检查的位置?
    • 为了提供更多信息,我在帖子中添加了 csproj 文件并引用了 SDK,以及包含 sdk 的文件夹。有什么办法可以知道visual studio是如何搜索sdk的,为什么在那个文件夹里找不到呢
    • @Daryl1976:你安装了 Visual Studio 2017 吗?如果是,您可能需要更新到 2019 年,并应用最新更新。
    【解决方案3】:

    对我来说,我从https://github.com/dotnet/aspnetcore 下载了压缩文件中的主分支。然后我在尝试在 VS Code 中加载 AspNetCore.sln 时遇到了同样的问题。 (解决方案中的所有项目都加载失败)。

    使用 dotnet --info 我看到我已经安装了这些:

    3.1.201 [C:\Program Files\dotnet\sdk]
    3.1.402 [C:\Program Files\dotnet\sdk]
    3.1.403 [C:\Program Files\dotnet\sdk]
    

    但是,解决方案文件夹中 global.json 中指定的 SDK 版本使用的是 6.0.100-alpha.1.20523.3。

    {
      "sdk": {
        "version": "6.0.100-alpha.1.20523.3"
      },
      "tools": {
        "dotnet": "6.0.100-alpha.1.20523.3",
        ...other settings...
      }
    }
    

    所以我将这两个设置都更改为“3.1.403”。重新加载解决方案后,所有项目均已正确加载。

    【讨论】:

    • 只想浏览源代码的好解决方案
    【解决方案4】:

    dotnet sdk 工具在当前工作目录或父目录中查找 global.json 文件 global.json 中定义的 dotnet SDK 版本指示应使用哪些版本的 .NET CLI。 通常使用最新的 dotnet sdk 工具,因此不需要 global.json。因此,如果您想控制使用哪个版本的 cli,请添加 global.json,否则不需要。

    尝试从您的项目目录或父目录中删除 global.json,工具将默认为最新的可用 sdk 工具

    典型的 global.json 文件内容如下所示

    {
      "sdk": {
      "version": "3.1.102",
      "rollForward": "latestFeature"
      }
    }
    

    【讨论】:

      【解决方案5】:

      【讨论】:

        【解决方案6】:

        对于版本 6.0.100-alpha.1.20523.3 需要安装这个 https://dotnetcli.azureedge.net/dotnet/Sdk/6.0.100-alpha.1.20523.3/dotnet-sdk-6.0.100-alpha.1.20523.3-win-x64.zip

        或下载 Visual Studio 的预发布版本

        【讨论】:

          【解决方案7】:

          dotnet --list-sdks 如果你没有 sdk 下载它。

          【讨论】:

            【解决方案8】:

            对我来说问题是,我的系统中安装了 dotnet 5.0.103 版本,并且在我的 global.json(global.json 文件的路径 - C:\Users\userid\global.json)文件中设置了版本"version": "3.1.100"

            在将路径从"version": "3.1.100" 更新为"version": "5.0.103" 后,它又开始工作了。

            【讨论】:

              【解决方案9】:

              如果你的系统中没有安装dot.net core 3.1+版本的SDK库,请先安装它,如果已经安装,则修复它。

              [1]https://dotnet.microsoft.com/download/dotnet/thank-you/sdk-3.1.409-windows-x64-installer

              【讨论】:

                猜你喜欢
                • 2021-02-05
                • 1970-01-01
                • 2016-12-22
                • 1970-01-01
                • 1970-01-01
                • 2012-05-18
                • 1970-01-01
                • 1970-01-01
                • 2020-09-24
                相关资源
                最近更新 更多