CAKE抛出错误声明参数未设置,即使它已经设置

时间:2017-08-22 13:45:34

标签: continuous-integration teamcity cakebuild

我正在使用Cake 0.21.1.0。

对于我的项目,作为TeamCity的构建步骤,我执行build.ps1,后者又调用build.cake。我按照the CAKE documentation

将以下参数传递给我的build.ps1脚本
-ScriptArgs '-MSBuildLogger="JetBrains.BuildServer.MSBuildLoggers.MSBuildLogger,%teamcity.dotnet.msbuild.extensions4.0%"'

build.cake中,我添加了以下行:

var msBuildLogger = Argument<string>("MSBuildLogger");

但是,抛出了以下错误:

[15:37:22]Error: Argument 'MSBuildLogger' was not set.
[15:37:22]Process exited with code 1

我做错了什么?

1 个答案:

答案 0 :(得分:5)

尝试以下build.cake文件:

var logger = Argument<string>("MSBuildLogger");

Task("Default")
  .Does(() =>
{
  Information(logger);
});

RunTarget("Default");

此外,使用以下命令从resources repository获取最新的引导程序文件:

Invoke-WebRequest https://cakebuild.net/download/bootstrapper/windows -OutFile build.ps1

然后运行以下命令:

.\build.ps1 -ScriptArgs '-MSBuildLogger="JetBrains.BuildServer.MSBuildLoggers.MSBuildLogger,%teamcity.dotnet.msbuild.extensions4.0%"'

在本地运行脚本时确认您获得了正确的输出。即将TeamCity排除在等式之外。