如何从msbuild获取构建日志?

vij*_*jay 3 c# msbuild cakebuild

我正在使用下面的代码来编译我的蛋糕脚本项目,我想在文本文件中获取构建日志.

if(IsRunningOnWindows())
{

  // Use MSBuild
  foreach(string currenproject in projectslocation)
  {
  MSBuild(currenproject, new MSBuildSettings()
  .SetConfiguration(configuration)
  .SetVerbosity(Verbosity.Minimal));

  }

}
Run Code Online (Sandbox Code Playgroud)

这可以创建构建日志文件吗?

Gar*_*ark 5

来到Cake的下一个版本(0.17.0)(希望我们在本周末发布)我们实现了这个功能请求,它允许使用一个新的扩展方法,允许你传入一个MSBuildFileLogger.此扩展方法将阻止进入ArgumentCustomization路由.

这应该允许你这样的事情:

MSBuild("./myproject.sln", new MSBuildSettings()
    .AddFileLogger(new MSBuildFileLogger {
        LogFile = "./errors.txt",
        MSBuildFileLoggerOutput = MSBuildFileLoggerOutput.ErrorsOnly   
});
Run Code Online (Sandbox Code Playgroud)

今天你可以使用Cake的MyGet feed获得预发布的v0.17.0版本的Cake .

如果您正在使用nuget CLI来安装Cake,就像在默认引导程序中一样,您将添加-Source https://www.myget.org/F/cake/api/v3/index.jsonnuget install语句中.

然后:

  • 如果您使用的package.config是固定Cake版本,请指定版本0.17.0-alpha0092或更高版本.

  • 如果你只是使用Cake包ID 安装,那么你只需添加-PreRelease它,它将从feed获取最新版本或者也指定-Version 0.17.0-alpha009参数.