构建步骤后在 Cake 脚本中公开 MSBuild 属性

Expose MSBuild property in Cake script after build step

你能在蛋糕脚本中通过 MSBuild 设置 属性 吗?

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

我想在蛋糕构建的剩余部分检测增量构建是否发生。

我目前在 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 的值吗?

这实际上并不是一个 Cake 问题:Cake“仅”运行s msbuild 使用给定的参数。 因此,如果您找到了一种从外部 msbuild 访问 Property 的方法,您可以将该解决方案转移到 Cake。

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

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

  • 在您的 msbuild 调用上使用 Message-Task then set a FileLoggerSkipPostBuildActions 的值输出到日志中,然后解析日志文件。
  • 使用 WriteLinesToFile-TaskSkipPostBuildActions 的值输出到专用文件,然后在 msbuild 具有 运行.
  • 后解析该文件

我个人会选择后者。