Question

J'utilise le bijou germon fabuleux avec le râteau pour construire un nouveau projet .NET. Mon organisation utilise toujours NAnt, et il y a beaucoup de gens qui attendent de voir un fichier journal lorsque le script exécute de construction. Comment puis-je enregistrer la sortie de la tâche MSBuild qui obtient stdout dans un fichier journal?

Était-ce utile?

La solution

Je me suis dit une solution. Nous ne avons pas vraiment besoin d'un build fichier journal pour notre serveur CI (hudson), mais il serait toujours agréable d'avoir des fichiers physiques pour vérifier lorsque la construction fonctionne localement, en particulier lorsque nous faisons le check-in danse et la construction échoue.

Heureusement, les gars germon ont été assez intelligents pour créer une option « .parameters », qui peut être utilisé avec l'une des tâches de l'outil de ligne de commande pour ajouter des paramètres qui ne sont pas explicitement traités par cette tâche. Ainsi, par exemple, vous pouvez ajouter un paramètre à la tâche msbuild pour spécifier un fichier journal pour MSBuild. Et il va un petit quelque chose comme ceci:

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

Notre rakefile est un peu plus complexe que cela, car il doit faire plus de choses, mais vous voyez l'idée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top