【问题标题】:Visual Studio dotnet command line tools wrong versionVisual Studio dotnet 命令行工具版本错误
【发布时间】:2016-08-02 19:21:27
【问题描述】:

我遇到了 dotnet 命令行工具版本错误的问题。我刚刚从https://www.microsoft.com/net/core#windows 卸载并重新安装了最新的 .NET Core 工具

然后我打开 VS2015 (Update 3),点击 Help -> About Microsoft Visual Studio。在那里我可以看到 .NET Core 工具的正确版本:

Microsoft .NET Core Tools (Preview 2) 14.1.20624.0

但是,当我转到工具 -> NuGet 包管理器 -> 包管理器控制台并输入

dotnet --version

我明白了:

1.0.0-preview1-002702

这是错误的。这应该是 1.0.0-preview2-00300*(一些东西)。

这是一个主要问题,因为我的 nuget 包现在都无法恢复工作。我收到大量“Package Microsoft.Aspnetcore.Mvc1.0.0 不支持框架 .NETCoreApp,Version=v1.0”类型的错误,如下所示:Package Microsoft.Aspnetcore.Mvc1.0.0 does not support framework .NETCoreApp, Version=v1.0

发生了什么事?如何让包管理器控制台识别 .NET Core 工具是版本 Preview 2,而不是 Preview 1?

【问题讨论】:

  • 这取决于您所在的文件夹。 'dotnet' 搜索当前文件夹项目运行时版本,然后调用该特定版本。
  • 您之前卸载过 preview 1 工具吗?如果旧工具未正确卸载,从 dnx 切换到 dotnet-cli 时也会出现类似问题
  • 是的,刚刚尝试再次卸载所有内容。

标签: visual-studio-2015 asp.net-core nuget-package-restore


【解决方案1】:

由于.net Core 的并排安装方式,多个版本可以在一台机器上共存。因此 dotnet.exe(.NET Core 命令行界面)解析的版本可能与最新安装的版本不同。

来自https://docs.microsoft.com/de-de/dotnet/articles/core/tools/index#driver

首先,驱动程序将确定您使用的工具版本 想。您可以在 global.json 文件中使用 sdkVersion 属性。如果这不可用,驱动程序将找到 安装在磁盘上并将使用的最新版本的工具 那个版本。一旦确定版本,它将执行 命令。

请检查您的项目文件夹中是否存在global.json,该global.json 可能明确将sdkVersion 定义为1.0.0-preview1-002702,并将其更改为1.0.0-preview2-003121

【讨论】:

  • 我的解决方案中没有 global.json 文件。我应该手动添加吗?有没有其他方法可以解决这个问题?
【解决方案2】:

我刚刚解决了从 1.0.0 到 1.1.0 的版本控制问题

您的 project.json 需要更改为新模板,例如。

{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {},
  "frameworks": {
    "netcoreapp1.1": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0"
        },
        "Microsoft.ApplicationInsights.AspNetCore": "1.0.0",
        "Microsoft.AspNetCore.Mvc": "1.0.1",
        "Microsoft.AspNetCore.Routing": "1.0.1",
        "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
        "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
        "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
        "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
        "Microsoft.Extensions.Configuration.Json": "1.0.0",
        "Microsoft.Extensions.Logging": "1.0.0",
        "Microsoft.Extensions.Logging.Console": "1.0.0",
        "Microsoft.Extensions.Logging.Debug": "1.0.0",
        "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0"
      },
      "imports": "dnxcore50"
    }
  }
}

我从https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-net-core-1-1/得到这个

只要安装了核心 1.1 SDK,当运行“dotnet.exe”命令时,它应该选择正确的 SDK 来使用。出于兴趣,“dotnet.exe”命令似乎是“全局”的,因为它适用于多个版本。每个版本都没有一个 dotnet.exe。 SDK 安装布局显示了这一点,dotnet.exe 位于

C:\Program Files\dotnet

SDK 本身位于

C:\Program Files\dotnet\sdk\1.0.0-preview2-1-003177 C:\Program Files\dotnet\sdk\1.0.0-preview2-003131

更改project.json后你需要做的事情

dotnet restore

然后你就可以了

dotnet build
dotnet run

【讨论】:

    【解决方案3】:

    升级到最新的 .NET Core SDK 1.0.3,但dotnet.exe 仍在寻找project.json。您似乎需要删除 dotnet SDK 的任何预览版本,因为它们优先于版本号。

    从添加/删除程序中卸载所有 SDK 预览版 (1.0.0-preview2-) 后,dotnet.exe 找到了最新安装的 1.0.3 SDK。

    卸载 .NET Core 预览版

    关键是运行dotnet --info 并验证Product Information => Version 属性。如果显示预览,则说明它没有使用最新的 .NET Core SDK 版本,运行dotnet builddotnet run 时会出现类似错误:

    在当前目录中找不到“project.json”

    【讨论】:

      【解决方案4】:

      由于某种原因 dotnet 选择了以前的版本,但默认情况下应该 选择最高的。有一种解决方法可以强制它。

      请尝试以下方法:

      1. 转到:C:\Program Files\dotnet\sdk
      2. 移除dotnet坚持使用的SDK
      3. 运行控制台并写入:dotnet --version。 您应该有以下错误:

      无法执行,因为找不到应用程序或 未安装兼容的 .NET SDK。
      可能的原因包括:
      您打算执行一个 .NET 程序:
      应用程序“--version”不存在。 您打算执行 .NET SDK 命令:
      未找到来自 [C:\global.json] 的适用于 global.json 版本 [2.2.101] 的兼容已安装 .NET SDK。
      安装 [2.2.101] .NET SDK或使用已安装的 .NET SDK 更新 [C:\global.json]
      1.1.14 [C:\Program Files\dotnet\sdk]
      (...)
      5.0.401 [C:\Program Files\dotnet\sdk]
      5.0.402 [C:\Program Files\dotnet\sdk]

      1. 打开文件:C:\global.json
      2. 使用预期版本覆盖版本字段,例如使用“5.0.402”覆盖 net5:
       {
            "sdk": {
              "version": "5.0.402"
            }
          }
      

      参考:https://docs.microsoft.com/en-us/dotnet/core/tools/global-json?tabs=netcore3x

      【讨论】:

        猜你喜欢
        • 2019-03-29
        • 2018-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-08
        • 2016-11-06
        • 1970-01-01
        • 2022-01-05
        相关资源
        最近更新 更多