【发布时间】:2018-07-10 23:00:09
【问题描述】:
我正在尝试使用 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
【问题讨论】:
-
您是否对项目进行了 .NET 恢复?
-
@devlead 运行 dotnet 恢复在本地和代理上的命令行工作。当使用
error MSB4236: The SDK 'Microsoft.NET.Sdk' specified could not be found.作为构建错误运行时 -
另外可能值得注意的是,脚本运行良好,无需运行
dotnet restore。这让我相信它与元赛跑者的关系比其他任何事情都重要。 -
我能够确认
WorkingDirectory确实按预期工作,并且此命令是从项目根目录运行的。 -
我尝试在元运行器上设置
<param name="jetbrains_powershell_bitness" value="x64" />,但仍然遇到同样的问题
标签: .net-core aws-lambda teamcity cakebuild