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

MY_*_*Y_G 2 teamcity continuous-integration cakebuild

我正在使用Cake 0.21.1.0.

对于我的项目,作为TeamCity的构建步骤,我执行build.ps1,然后调用build.cake.我build.ps1根据CAKE文档将以下参数传递给我的脚本:

-ScriptArgs '-MSBuildLogger="JetBrains.BuildServer.MSBuildLoggers.MSBuildLogger,%teamcity.dotnet.msbuild.extensions4.0%"'
Run Code Online (Sandbox Code Playgroud)

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

var msBuildLogger = Argument<string>("MSBuildLogger");
Run Code Online (Sandbox Code Playgroud)

但是,抛出以下错误:

[15:37:22]Error: Argument 'MSBuildLogger' was not set.
[15:37:22]Process exited with code 1
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

Gar*_*ark 5

请尝试以下build.cake文件:

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

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

RunTarget("Default");
Run Code Online (Sandbox Code Playgroud)

此外,使用以下命令从资源存储库中获取最新的引导程序文件:

Invoke-WebRequest https://cakebuild.net/download/bootstrapper/windows -OutFile build.ps1
Run Code Online (Sandbox Code Playgroud)

然后运行以下命令:

.\build.ps1 -ScriptArgs '-MSBuildLogger="JetBrains.BuildServer.MSBuildLoggers.MSBuildLogger,%teamcity.dotnet.msbuild.extensions4.0%"'
Run Code Online (Sandbox Code Playgroud)

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