npm 无法从 global.json 中找到 SDK 版本
npm cannot find SDK version from global.json
我正忙着尝试在 asp.net core / npm / react 上使用它作为基础项目模板:
https://github.com/jonmcquade/aspnetcore-react-redux#local-no-docker
我最初 运行 在尝试这个命令时遇到了麻烦:
dotnet build -c Release -o ./app
我看到的错误:
A compatible SDK version for global.json version: [2.1.0] from
[global.json] was not found Did you mean to run dotnet SDK commands?
Please install dotnet SDK from:
http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
我安装了文档中的特定版本,并且安装了最新版本,包括 x64 和 x86 平台。
我现在也收到此错误 运行 npm install
命令或 dotnet --version
命令,但我安装了 SDK。
感觉机器配置不知何故变坏了。我似乎遇到了一些版本问题,试图让 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>
我缺少什么才能让它正常工作?
我可以检查一些机器配置问题吗?也许环境变量?我已尝试 运行 使用安装程序进行修复,但这并不能解决问题。
global.json
指定用于构建应用程序的 .NET Core 的 SDK 版本。这与您希望 运行 您的应用程序使用的 .NET Core 运行时版本无关。
您的应用程序是 netcoreapp2.1
,因此您正在 运行安装 .NET Core 2.1 运行时。最早的 SDK 版本是 2.1.300
.
由于这是最新的 .NET Core 版本,实际上您根本不需要使用 global.json
:只需从您的项目中删除文件,工具应该使用最新版本 global.json
=14=] 在你的机器上。
如果您 运行 在 OSX 遇到这个问题,您可以这样解决问题:
which dotnet
ls
+ 上一条命令的输出
您现在应该看到如下内容:
/usr/local/share/dotnet/dotnet
包含你的 dotnet
二进制文件的目录也应该有一个名为 sdk
的目录,所以对于上面的例子你可以 运行 ls /usr/local/share/dotnet/sdk
,它应该输出一个包含当前版本号的目录。在我的情况下是 2.1.403
(可能有更好的方法来获取版本号,但我无法 运行 dotnet --version
没有指定正确的 sdk)
如果我现在打开应用程序根目录中的 global.json
文件并将 sdk
版本更改为 "2.1.403-osx-gs-x64"
,我现在应该能够 运行 dotnet
命令,例如我项目中的 dotnet run
。
只需确保您的机器上安装了所需的 SDK 版本。根据您的错误,它是 .NET core 2.1.0
。您不再需要 global.json
文件。
我正忙着尝试在 asp.net core / npm / react 上使用它作为基础项目模板:
https://github.com/jonmcquade/aspnetcore-react-redux#local-no-docker
我最初 运行 在尝试这个命令时遇到了麻烦:
dotnet build -c Release -o ./app
我看到的错误:
A compatible SDK version for global.json version: [2.1.0] from [global.json] was not found Did you mean to run dotnet SDK commands? Please install dotnet SDK from:
http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
我安装了文档中的特定版本,并且安装了最新版本,包括 x64 和 x86 平台。
我现在也收到此错误 运行 npm install
命令或 dotnet --version
命令,但我安装了 SDK。
感觉机器配置不知何故变坏了。我似乎遇到了一些版本问题,试图让 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>
我缺少什么才能让它正常工作?
我可以检查一些机器配置问题吗?也许环境变量?我已尝试 运行 使用安装程序进行修复,但这并不能解决问题。
global.json
指定用于构建应用程序的 .NET Core 的 SDK 版本。这与您希望 运行 您的应用程序使用的 .NET Core 运行时版本无关。
您的应用程序是 netcoreapp2.1
,因此您正在 运行安装 .NET Core 2.1 运行时。最早的 SDK 版本是 2.1.300
.
由于这是最新的 .NET Core 版本,实际上您根本不需要使用 global.json
:只需从您的项目中删除文件,工具应该使用最新版本 global.json
=14=] 在你的机器上。
如果您 运行 在 OSX 遇到这个问题,您可以这样解决问题:
which dotnet
ls
+ 上一条命令的输出
您现在应该看到如下内容:
/usr/local/share/dotnet/dotnet
包含你的 dotnet
二进制文件的目录也应该有一个名为 sdk
的目录,所以对于上面的例子你可以 运行 ls /usr/local/share/dotnet/sdk
,它应该输出一个包含当前版本号的目录。在我的情况下是 2.1.403
(可能有更好的方法来获取版本号,但我无法 运行 dotnet --version
没有指定正确的 sdk)
如果我现在打开应用程序根目录中的 global.json
文件并将 sdk
版本更改为 "2.1.403-osx-gs-x64"
,我现在应该能够 运行 dotnet
命令,例如我项目中的 dotnet run
。
只需确保您的机器上安装了所需的 SDK 版本。根据您的错误,它是 .NET core 2.1.0
。您不再需要 global.json
文件。