ASP.NET Core:找不到与global.json版本2.1.400兼容的SDK版本

时间:2018-08-29 11:51:03

标签: asp.net-core msbuild

我的解决方案中有一个针对.NET Core 2.1的ASP.NET Core项目。我在解决方案级别添加了global.json文件:

{
  "sdk": {
    "version": "2.1.400"
  }
}

在Team City代理上,我安装了MSBuild Tools 2017(15.8.1),其中包括.NET Core Build Tools。

从命令行中,我可以看到SDK 2.1.400已安装在代理上:

>dotnet --list-sdks
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.400 [C:\Program Files\dotnet\sdk]

但是,在Team City上构建解决方案失败,出现以下错误:

dashboard.csproj : error : Unable to locate the .NET Core SDK. Check that it is installed and that the version specified in global.json (if any) matches the installed version.
Dashboard.csproj : error MSB4236: The SDK 'Microsoft.NET.Sdk.Web' specified could not be found.
A compatible SDK version for global.json version: [2.1.400] from [X:\agent-1\sandbox1\global.json] was not found

有什么主意,为什么使用MSBuild进行构建时却找不到SDK 2.1.400,因为它已出现在SDK列表中?

2 个答案:

答案 0 :(得分:1)

我终于弄清楚了dotnet在Team City上运行时未被识别为命令(尽管dotnet被同一提示符下的Windows帐户识别为命令)。

对我来说,解决方案是使用Team City参数更新PATH环境变量:

Name: env.PATH
Kind: Environment Variable
Value: C:\Program Files\dotnet;%env.PATH%

现在可以正常工作了。

答案 1 :(得分:1)

验证PATH环境变量是否指向SDK的安装位置(对于64位/ x64,为C:\ Program Files \ dotnet \;对于32位/ x,为C:\ Program Files(x86)\ dotnet \ x86)。 SDK安装程序通常会设置PATH。始终在同一台计算机上安装相同的bitity SDK和运行时。