我的解决方案中有一个针对.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列表中?
答案 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和运行时。