npm找不到global.json的SDK版本

时间:2018-05-20 08:41:40

标签: asp.net-core .net-core asp.net-core-2.1

我正在尝试使用它作为基础项目模板在asp.net core / npm / react上加快速度:

https://github.com/jonmcquade/aspnetcore-react-redux#local-no-docker

一旦尝试这个命令,我最初遇到了麻烦:

  

dotnet build -c Release -o ./app

我看到的错误:

  

适用于global.json版本的兼容SDK版本:[2.1.0]来自   找不到[global.json]您是不是想运行dotnet SDK命令?   请从以下位置安装dotnet SDK:
  http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409

我安装了文档中的特定版本,并且安装了最新版本,包括x64和x86平台。

enter image description here

我现在也运行npm install命令或dotnet --version命令时出错,但我安装了SDK。

感觉机器配置已经以某种方式破坏了。我似乎已经尝试了一些版本的pickle试图使dotnet build命令工作,现在甚至NPM都无法工作。

Global.json是:

{
    "sdk": { "version": "2.1.0" }
}

.csproj文件包含:

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <RuntimeFrameworkVersion>2.1.0-preview1-26216-03</RuntimeFrameworkVersion>
    <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
    <IsPackable>false</IsPackable>
    <AssemblyName>FlightSearch</AssemblyName>
    <RootNamespace>FlightSearch</RootNamespace>
    <ApplicationIcon>ClientApp\favicon.ico</ApplicationIcon>
    <Authors>Jon McQuade</Authors>
    <Company>ACME Freelancing, Inc.</Company>
    <StartupObject></StartupObject>
    <Product>Flight Search</Product>
    <Description>ASP .NET Core 2.1 MVC SPA with React and Redux</Description>
    <RepositoryUrl>http://github.com/jonmcquade/aspnetcore-react-redux</RepositoryUrl>
    <PreserveCompilationContext>true</PreserveCompilationContext>
    <TypeScriptToolsVersion>2.8</TypeScriptToolsVersion>
    <OutputType>Exe</OutputType>
    <Version>2.1</Version>
  </PropertyGroup>

我错过了什么让这个工作?

我可以检查一些机器配置问题吗?也许环境变量?我尝试使用安装程序运行修复,但这并没有解决问题。

3 个答案:

答案 0 :(得分:5)

global.json指定用于构建应用程序的.NET Core的 SDK 版本。这与您希望运行应用程序的.NET Core Runtime版本没什么关系。

您的应用程序是netcoreapp2.1,因此您运行的是.NET Core 2.1 Runtime。最早的SDK版本为2.1.300

由于这是最新的.NET Core版本,您实际上根本不需要使用global.json:只需从项目中删除该文件,工具应使用最新版本{{1在你的机器上。

答案 1 :(得分:1)

如果您在OSX上遇到此问题,则可以通过以下方式解决此问题:

which dotnet

ls +上一条命令的输出

您现在应该看到类似以下内容的内容: /usr/local/share/dotnet/dotnet

包含dotnet二进制文件的目录也应该有一个名为sdk的目录,因此对于上面的示例,您可以运行ls /usr/local/share/dotnet/sdk,该目录应输出具有当前版本号的目录。就我而言,2.1.403(获得版本号可能是一种更好的方法,但是如果没有指定正确的sdk,我将无法运行dotnet --version

如果我现在在应用程序的根目录中打开global.json文件,并将sdk版本更改为"2.1.403-osx-gs-x64",则现在应该可以运行dotnet命令,例如dotnet run来自我的项目。

答案 2 :(得分:0)

只需确保您的计算机中已安装所需的SDK版本。发生错误时,它为.NET core 2.1.0。您不再需要globaljson文件。