【问题标题】:Cake MSBuild TargetsCake MSBuild 目标
【发布时间】:2018-07-12 12:36:23
【问题描述】:

我正在尝试使用Cake 内置的MSBuild 功能来仅构建特定目标(即Compile)。使用示例:https://cakebuild.net/api/Cake.Common.Tools.MSBuild/MSBuildAliases/C240F0FB

var settings = new MSBuildSettings()
{
    Verbosity = Verbosity.Diagnostic,
    ToolVersion = MSBuildToolVersion.VS2017,
    Configuration = "Release",
    PlatformTarget = PlatformTarget.MSIL
};
settings.WithTarget("Compile");

MSBuild("./src/Cake.sln", settings);

但它似乎构建了所有目标,而我只想构建一个特定的目标,详见:https://msdn.microsoft.com/en-us/library/ms171486.aspx

【问题讨论】:

    标签: c# msbuild cakebuild msbuild-target


    【解决方案1】:

    根据此处的文档:

    https://cakebuild.net/api/Cake.Common.Tools.MSBuild/MSBuildSettingsExtensions/01F8DC03

    WithTarget 扩展方法返回与修改相同的 MSBuildSettings 实例,它不与当前实例交互。因此,您在哪里:

    settings.WithTarget("Compile");
    

    实际上什么也没做。但是,如果您这样做:

    var settings = new MSBuildSettings()
    {
        Verbosity = Verbosity.Diagnostic,
        ToolVersion = MSBuildToolVersion.VS2017,
        Configuration = "Release",
        PlatformTarget = PlatformTarget.MSIL
    };
    
    MSBuild("./src/Cake.sln", settings.WithTarget("Compile");
    

    它应该按照你的意愿工作。

    为了帮助解决这类问题,您可以在诊断模式下运行 Cake,以准确查看正在发送到命令行以执行的命令。您可以在此相关问题中找到更多相关信息:

    How to enable diagnostic verbosity for Cake

    【讨论】:

    • 首先,感谢您的回答。不幸的是,这也构建了其他目标。我只想构建一个特定的目标,没有别的。
    • 我对 Cake 不熟悉,但如果您只想构建特定的目标,为什么不创建一个新的构建配置并将该配置的名称输入到 Configuration 变量中?
    • 您检查过在诊断模式下运行 Cake 时使用的命令行参数吗? Cake 发出的和你想要的有什么不同?
    猜你喜欢
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多