0

我正在尝试使用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

4

1 回答 1

2

根据此处的文档:

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

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

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,以准确查看正在发送到命令行执行的命令。您可以在此相关问题中找到更多相关信息:

如何为 Cake 启用诊断详细信息

于 2018-07-12T13:41:59.290 回答