使用 Cake 时重定向 MSBuild 输出路径

Redirect MSBuild output path when using Cake

来自 Fake 我习惯将 csproj 文件的标准输出保存到 bin/debug 以便能够在本地进行调试。但是当 运行 我的构建脚本时,我希望将文件编译为 /bin/build 以创建安装脚本或 nuget 包。

我用蛋糕试过了,但是w/o成功了:

Task("Build")
.DoesForEach( GetFiles ("**/*.sln" ), (sln) =>
   var settings = new MSBuildSettings()
    .WithProperty("OutputPath", buildDir);
   MSBuild(sln, settings);
});

它为 MSBuild 生成正确的调用

"C:/.../MSBuild.exe" /v:normal /p:OutputPath=bin/build /target:Build ...

但不幸的是,目标目录是空的? 我错过了什么吗?

提前致谢

OutputPath 需要是绝对路径,尝试类似:

Task("Build")
.DoesForEach( GetFiles ("**/*.sln" ), (sln) =>
    DirectoryPath buildDir = MakeAbsolute(Directory("./bin/build"));
    // Use MSBuild
    var settings = new MSBuildSettings()
                        .WithProperty("OutputPath", buildDir.FullPath);
    MSBuild(sln, settings);
});