【问题标题】:Expose MSBuild property in Cake script after build step构建步骤后在 Cake 脚本中公开 MSBuild 属性
【发布时间】:2021-05-24 10:32:22
【问题描述】:

你能在你的蛋糕脚本中获得由 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 cakebuild


    【解决方案1】:

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

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

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

    • 使用Message-TaskSkipPostBuildActions 的值输出到日志中,然后在您的msbuild-call 上设置FileLogger,然后解析日志文件。
    • 使用WriteLinesToFile-TaskSkipPostBuildActions 的值输出到专用文件,然后在msbuild 运行后解析该文件。

    我个人会选择后一个选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-24
      • 2017-02-01
      • 2011-04-25
      • 1970-01-01
      • 2016-07-16
      • 1970-01-01
      • 2019-05-01
      相关资源
      最近更新 更多