Domanda

Sto utilizzando la favolosa gemma tonno bianco con il rastrello per costruire un nuovo progetto NET. La mia organizzazione è ancora utilizzando NAnt, e ci sono un sacco di gente che si aspettano di vedere un file di registro quando viene eseguito lo script di build. Come si salva l'output compito msbuild che viene scaricato su STDOUT ad un file di log?

È stato utile?

Soluzione

ho capito una soluzione. Non abbiamo davvero bisogno di un file di log di compilazione per il nostro server CI (Hudson), ma sarebbe comunque bello avere i file fisici per verificare quando la compilazione viene eseguito a livello locale, in particolare quando stiamo facendo il check-in danza e la costruzione non riesce.

Per fortuna, i tizi tonno bianco erano abbastanza intelligente per creare un opzione ".parameters", che può essere utilizzato con qualsiasi dei compiti dello strumento da riga di comando per aggiungere i parametri che non sono esplicitamente gestiti da questo compito. Così, per esempio, è possibile aggiungere un parametro al compito MSBuild per specificare un file di log per MSBuild. E si va un po 'qualcosa di simile a questo:

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

La nostra rakefile è un po 'più complessa di quella, perché ha a che fare più cose, ma si ottiene l'idea.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top