Как мне поднять выход MSBuild в файл журнала из граблей

StackOverflow https://stackoverflow.com/questions/3114454

  •  29-09-2019
  •  | 
  •  

Вопрос

Я использую сказочный драгоценный камень Albacore с граблями, чтобы построить новый .NET Project. Моя организация все еще использует NANT, и есть много людей, которые ожидают увидеть файл журнала, когда сценарий сборки выполняется. Как сохранить вывод задачи MSBuild, который сбрасывается в stdout в файл журнала?

Это было полезно?

Решение

Я выяснил решение. Нам действительно не нужен файл журнала сборки для нашего CI-сервера (Hudson), но было бы неплохо иметь физические файлы, чтобы проверить, когда сборка работает локально, особенно когда мы делаем танец регистрации и сборку терпит неудачу.

К счастью, парни Альбакора были достаточно умными, чтобы создать опцию «.parameters», которая может использоваться с любой из задач инструмента командной строки, чтобы добавить параметры, которые явно не обрабатываются этой задачей. Так, например, вы можете добавить параметр в задачу MSBuild, чтобы указать файл журнала для MSBuild. И это идет немного подобно:

BUILD_REPORTS = 'BuildReports'
MSBUILD_EXE = "C:/Windows/Microsoft.NET/Framework/v4.0.30319/msbuild.exe"

directory BUILD_REPORTS

CLEAN.include BUILD_REPORTS

task :default => [:build]

desc "Build the solution"
msbuild :build => BUILD_REPORTS do |msb|
    msb.properties :configuration => :Debug
    msb.path_to_command = MSBUILD_EXE
    msb.targets :Clean, :Build
    msb.solution = "./mysolution.sln"
    msb.parameters "/l:FileLogger,Microsoft.Build;logfile=" + log_file("build")
end

def log_file(log_file_name)
    BUILD_REPORTS + log_file_name + ".log"
end

Наш пластинок немного сложнее, чем это, потому что он должен делать больше вещей, но вы поняли.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top