Как мне поднять выход MSBuild в файл журнала из граблей
Вопрос
Я использую сказочный драгоценный камень 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
Наш пластинок немного сложнее, чем это, потому что он должен делать больше вещей, но вы поняли.