Necesito construir un proyecto programáticamente para un .csproj que estoy creando sobre la marcha. Al buscar en Google, encontré las clases y la API proporcionadas por MS para MSBuild Engine. Con esa información, creo un proceso que ejecuta msbuild.exe y luego lee el resultado, pero ahora quiero usar el espacio de nombres Microsoft.Build.Execution
para construir el proyecto. Este es mi programa:Creando programáticamente un proyecto
public class Compiler
{
private static string locationOfMSBuilldEXE = "";
public static void Build(string msbuildFileName)
{
BuildManager manager = BuildManager.DefaultBuildManager;
ProjectInstance projectInstance = new ProjectInstance(msbuildFileName);
var result = manager.Build(new BuildParameters()
{
DetailedSummary = true
},
new BuildRequestData(projectInstance, new string[] { "Build" }));
var buildResult = result.ResultsByTarget["Build"];
var buildResultItems = buildResult.Items;
string s = "";
}
}
Los resultados muestran que esta es la construcción de bien, pero necesitan conocer el resultado detallado de la compilación y cómo visualizarla. Sería realmente útil si alguien puede darme un enlace a un buen tutorial o libro en MSBuild.
thankx .. puede también decir a mi dónde encontrar un buen tutorial para el mismo conjunto de espacios de nombres? –
@Parv - Aparte de la documentación (que creo que es excelente), puedes probar esta http://www.amazon.com/Inside-Microsoft%C2%AE-Build-Engine-Pro-Developer/dp/0735626286 –
Solo conozco dos libros dedicados a MSBuild, y ambos son buenos (y revisados por los desarrolladores): (1) El libro de MSPress mencionado anteriormente, pero el enlace es a la primera edición, obtenga el segundo edición, que incluye características 4.0; (2) Consejos y trucos de MSBuild - busque en Amazon - esta es una guía muy avanzada. La documentación de MSDN es bastante limitada, me temo. –