求助:.NET Core 2.1项目TFS构建还原步骤失败,报找不到dotnet:null错误
我之前帮团队排查过一模一样的问题,给你几个实用的解决步骤,按顺序试应该能搞定:
检查构建代理机器的.NET Core SDK安装
首先得确认运行构建的代理机器上确实装了2.1.3版本的.NET Core SDK。让代理机器的管理员打开命令提示符,运行dotnet --version,如果返回的不是2.1.3或者直接提示找不到命令,那就重新下载对应版本的SDK安装包,安装的时候记得勾选“添加到系统PATH”选项,或者手动把dotnet的安装路径(一般是C:\Program Files\dotnet)加到系统环境变量里。在构建定义里指定SDK版本
你用的是.NET Core (PREVIEW)构建任务,这个预览版任务有时候不会自动识别正确的SDK版本。打开你的构建定义,找到“还原”步骤,在设置里找“SDK版本”选项,手动选择或输入2.1.3。另外,也可以在项目根目录添加一个global.json文件,提交到代码仓库里,强制构建任务使用指定版本的SDK,文件内容如下:{ "sdk": { "version": "2.1.3" } }验证构建代理的环境变量
有时候构建代理是用本地系统账户运行的,它的环境变量和你登录机器时的不一样。可以在构建流程里临时加一个“命令行”任务,运行以下两个命令:echo %PATH% dotnet --version查看构建日志里的输出,如果PATH里没有dotnet的路径,或者
dotnet --version报错,就需要把dotnet的安装路径加到代理服务的系统环境变量中,然后重启TFS构建代理服务。尝试切换到正式版构建任务
预览版的构建任务可能存在兼容性问题,你可以在TFS的任务库中检查有没有正式版的.NET Core构建任务,替换掉当前的预览版任务,正式版任务对SDK的检测逻辑更成熟,大概率能解决找不到dotnet的问题。
内容的提问来源于stack exchange,提问作者V. Amichai

