En este momento, no hay apoyo directo en la tarea de MSBuild para la construcción de múltiples soluciones. Sin embargo, hay algunas opciones disponibles. Principalmente se trata de la sintaxis que más te guste para hacer esto, pero todas involucran un bucle de algún tipo.
Por cierto: albacore v0.2.2 acaba de lanzarse hace unos días. Su valor predeterminado es .net 4, y acorta el .path_to_command a .command. Sin embargo, como está predeterminado, no necesita especificar el comando .command para usar. Usaré esta sintaxis para los ejemplos, aquí. Usted puede leer notas de la versión adicionales en http://albacorebuild.net
Opción # 1
carga la lista de soluciones en una matriz y msbuild llamada para cada solución. esto agregará: la tarea de compilación con varias instancias de msbuild y cuando llame a la tarea: compilación, todas serán compiladas.
solutions = ["something.sln", "another.sln", "etc"]
solutions.each do |solution|
#loops through each of your solutions and adds on to the :build task
msbuild :build do |msb, args|
msb.properties :configuration => :Release,
msb.targets [:Test]
msb.solution = solution
end
end
llamando rake build
o especificar :build
como una dependencia en cualquier otra tarea va a construir todas sus soluciones.
Opción # 2
opción 2 es básicamente lo mismo lo que acaba de aparecer ... excepto que usted puede llamar a la clase MSBuild
directamente en lugar de la tarea msbuild
msb = MSBuild.new
msb.solution = ...
msb.properties ...
#other settings...
de crear este let una tarea de la manera que desee, y luego puede realizar su ciclo donde desee. Por ejemplo:
task :build_all_solutions do
solutions = FileList["solutions/**/*.sln"]
solutions.each do |solution|
build_solution solution
end
end
def build_solution(solution)
msb = MSBuild.new
msb.properties :configuration => :Release,
msb.targets [:Test]
msb.solution = solution
msb.execute # note: ".execute" replaces ".build" in v0.2.x of albacore
end
Ahora, cuando se llama rake build_all_solutions
o agregar :build_all_solutions
como una dependencia en otra tarea, todas sus soluciones se construirá.
...
hay probablemente tienen una docena de variaciones que se pueden hacer, en base a lo que he mostrado aquí. Sin embargo, no difieren significativamente: solo algunas formas diferentes de encontrar todas las soluciones o recorrerlas.