在生成步骤之后,在Cake脚本中公开MSBuild属性



您能在蛋糕脚本中获取MSBuild设置的属性吗?

我目前有一个目标,它在编译后运行,以指示它是否已经运行,或者它是否是增量构建。

我想在蛋糕构建的剩余部分中检测是否进行了增量构建。

我目前在MSBuild上使用的目标如下:

<!-- Defines Targets that should be run after Compile, but skipped if Compile doesn't take place -->
<PropertyGroup>
<TargetsTriggeredByCompilation>
$(TargetsTriggeredByCompilation);
EnablePostBuild
</TargetsTriggeredByCompilation>
</PropertyGroup>
<Target Name="EnablePostBuild">
<!-- Disable post build actions  -->
<PropertyGroup>
<SkipPostBuildActions>false</SkipPostBuildActions>
</PropertyGroup>
</Target>

如果我触发内置Cake如下:

var buildSettings = new MSBuildSettings()
.WithProperty("SkipPostBuildActions", "true")
MSBuild("./src/Application.sln",buildSettings  );
var SkipPostBuildActionsVal = buildSettings??

在MSBuild步骤之后,我可以获得SkipPostBuildActions的值吗?

这实际上不是什么蛋糕问题:蛋糕"仅";使用给定的参数运行msbuild。因此,如果你找到了一种从msbuild外部访问Property的方法,你可以将该解决方案转移到Cake。

AFAIK-msbuild甚至不支持在任务之间轻松共享属性修改,更不用说在msbuild过程之外了。

我看到了两种可能的解决方案:

  • 使用Message-Task将SkipPostBuildActions的值输出到日志中,然后在msbuild调用上设置一个FileLogger,然后解析日志文件
  • 使用WriteLinesToFile-Task将SkipPostBuildActions的值输出到一个专用文件,然后在msbuild运行后解析该文件

就我个人而言,我选择了后一种选择。

最新更新