.net core Cake命令DotNetCoreTool失败,返回“0”;找不到匹配命令的可执行文件“;在构建服务器上

.net core Cake命令DotNetCoreTool失败,返回“0”;找不到匹配命令的可执行文件“;在构建服务器上,.net-core,aws-lambda,teamcity,cakebuild,.net Core,Aws Lambda,Teamcity,Cakebuild,我正在尝试使用Cake构建脚本在构建服务器上生成DotNetCore AWS Lambda包: Task("PackageLambda") .Does(() => { var projectDirectory = System.IO.Path.Combine(baseDirectory, lambdaProject.BaseDirectory, lambdaProject.ProjectName); DotNetCoreTool( projectPath:

我正在尝试使用Cake构建脚本在构建服务器上生成DotNetCore AWS Lambda包:

Task("PackageLambda")
.Does(() => 
{
    var projectDirectory = System.IO.Path.Combine(baseDirectory, lambdaProject.BaseDirectory, lambdaProject.ProjectName);
    DotNetCoreTool(
        projectPath: System.IO.Path.Combine(projectDirectory, "SubProject.csproj"),
        command: "lambda", 
        arguments: "package",
    );
});
在BuildAgent(作为系统运行)的上下文下运行时,命令失败,未找到与命令“dotnet lambda”匹配的可执行文件

  • 在本地运行构建脚本-有效
  • 在BuildAgent-works上手动运行构建脚本
  • 在BuildAgent-works上以系统用户()身份运行构建脚本
  • 使用外接程序设置
    工作目录
    -失败

我相当肯定这个问题与CAKE脚本调用的上下文有关,但似乎无法缩小范围。我们正在使用此MetaRunner运行我们的CAKE脚本-

其根本问题是环境变量
MSBuildSDKsPath
由Teamcity配置值设置。设置的值是无效路径

您是否对该项目执行了.NET还原?@devlead运行dotnet还原可以在本地运行,也可以从代理上的命令行运行。作为生成错误运行时出现
错误MSB4236:找不到指定的SDK“Microsoft.NET.SDK”。
也可能值得注意的是,脚本运行良好,无需运行
dotnet restore
。这让我相信它与metarunner的关系比其他任何东西都要大。我能够确认
WorkingDirectory
确实按照预期工作,并且此命令正在从项目根目录运行。我尝试在metarunner上设置
,但仍然遇到相同的问题