2012-09-09 22 views
5

Acabo de aprender de la manera más difícil que Visual Studio 2010 y MSBuild son extremadamente indulgentes con respecto a qué archivos de vcxproj MSBuild ejecutarán con éxito: omitirán las configuraciones faltantes para subtareas y archivos únicos y aún ejecutarán con éxito las tareas de compilación. Sin embargo, esto me está causando problemas, ya que genera compilaciones incoherentes en múltiples configuraciones, además debido a las inconsistencias internas en los archivos del proyecto, no puedo editarlos necesariamente en la vista de propiedades de Visual Studio.¿Hay alguna herramienta similar a una pelusa para MSBuild?

Hasta ahora he logrado eliminar las incoherencias más problemáticas editando los archivos vcxproj a mano, pero esta no es realmente una estrategia aceptable dado que esta solución en particular contiene más de 80 archivos de proyecto.

Hay una herramienta que puede verificar la consistencia interna de un archivo MSBuild y resaltar las configuraciones faltantes en la línea de "los archivos del proyecto dice que ofrece las configuraciones X, Y y Z pero la tarea personalizada para el archivo X solo admite configuraciones X y Z "?

Actualización: El problema específico que estoy tratando de resolver ahora Al contrario que el problema más general de la pelusa del archivo vcxproj es el de los condicionales que faltan para ciertas configuraciones. Desafortunadamente, agregar y actualizar los condicionales parece requerir un poco más de lo que puedo lograr con seguridad usando una herramienta de búsqueda y reemplazo. Hacerlo de forma programática y correcta probablemente requiera la manipulación del DOM y dado que estoy bastante familiarizado con la estructura interna de los archivos de compilación, hasta ahora parece que usar un editor de texto que sea capaz de realizar la validación XML estructural básica es la forma más rápida de lograrlo la tarea a mano.

Lo que realmente me gustaría ver, sin embargo, sería una herramienta que al menos puede resaltar estos problemas automáticamente para reducir el tiempo dedicado a su seguimiento.

Respuesta

1

Las configuraciones son, en general, un concepto de VS. No están integrados en MSBuild, pero se lograron utilizando atributos Conditional en grupos de propiedades. Lo más probable es los archivos del proyecto son los proyectos de MSBuild válidos, pero algunos de ellos no construyen con parámetros por defecto - me gustaría sugerir que no editarlos a mano, pero de cualquier

  • utilizan una herramienta de búsqueda y reemplazo de solucionarlos
  • escribir una pequeña aplicación que utiliza la API Microsoft.Build.Construction para inspeccionar y reparar los archivos de proyecto

No hay nada que realizar esto para usted, me temo.

+0

La API Microsoft.Build.Construction parece interesante, ¡gracias! He editado la pregunta para reflejar el hecho de que los problemas actuales que estoy viendo desafortunadamente están un poco más allá de las herramientas de búsqueda y reemplazo que normalmente usaría, aunque probablemente podría lanzar un guión de rubí para hacer parte del trabajo. . –

Cuestiones relacionadas