Cake命令DotNetCoreTool在构建服务器上失败,并显示“找不到与命令匹配的可执行文件”

时间:2018-07-02 15:43:51

标签: .net-core aws-lambda teamcity cakebuild

我正在尝试使用Cake Build脚本在构建服务器上生成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(作为系统运行)的上下文中运行时,该命令失败,并显示No executable found matching command "dotnet-lambda"

  • 在本地运行构建脚本-有效
  • 在BuildAgent上手动运行构建脚本-有效
  • 以BuildAgent上的系统用户(using psexec)的身份运行构建脚本-可以运行
  • 使用DoInDirectory加载项来设置WorkingDirectory-失败

我相当确定这个问题与CAKE脚本的调用上下文有关,但似乎无法缩小范围。我们正在使用此MetaRunner运行我们的CAKE脚本-https://gist.github.com/wwwlicious/620476f5cb8799937db84e24d6b5e75c

1 个答案:

答案 0 :(得分:0)

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