您能在蛋糕脚本中获取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运行后解析该文件
就我个人而言,我选择了后一种选择。