Visual Studio dotnet命令行工具版本错误

时间:2016-08-02 19:21:27

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

我遇到了dotnet命令行工具版本错误的问题。我刚从https://www.microsoft.com/net/core#windows

卸载并重新安装了最新的.NET核心工具

然后我打开了VS2015(更新3),然后点击了帮助 - >关于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包恢复功能现在都无法正常工作。我得到了很多"包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工具是版本预览2,而不是预览1?

3 个答案:

答案 0 :(得分:4)

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

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

  

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

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

答案 1 :(得分:1)

我刚刚解决了从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

答案 2 :(得分:0)

升级到最新的 .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预览

enter image description here

关键是要运行dotnet --info并验证产品信息=>版本属性。如果它说预览,它没有使用最新的.NET Core SDK版本,那么在运行dotnet builddotnet run时会出现错误:

  

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