visual tipo texto tamaño net letra fuente forecolor estilo color cambiar c# .net msbuild roslyn

c# - tipo - estilo de fuente en visual basic



Modificación del código fuente en tiempo de compilación usando Roslyn (3)

¿Es posible modificar el código fuente antes de la compilación utilizando Roslyn en la tarea de MSBuild en el servidor de CI? He logrado hacer lo que quiero en VS pero me pregunto si es posible fuera de VS. Actualmente estoy viendo las API de Workspace y las API de compilación y parecen ser la herramienta adecuada para lograrlo, pero aún no estoy seguro de que sea posible. En particular, estoy preocupado por devolver los cambios que he hecho a MSBuild para permitirle continuar con su trabajo.


Este es definitivamente un escenario que estamos pensando. Hoy hay un par de problemas que lo hacen un poco difícil:

  1. No puede usar las API del área de trabajo para cargar un proyecto / solución como ya está dentro de msbuild.
  2. Para usar las API de compilación regulares, necesita construir una compilación usted mismo que puede ser un montón de trabajo.

En el futuro, nos gustaría proporcionar un "Crear un espacio de trabajo a partir de una cadena de línea de comando csc / vbc", lo que facilitaría mucho esta tarea.

Eche un vistazo a Hooking en el compilador (csc.exe o vbc.exe) y al Problema con el uso de Roslyn en una tarea de compilación de MS para una discusión previa sobre esto.


Personalmente no he podido probar esto (así que, si lo desea, trate esta "respuesta" como un comentario), pero al leer cosas sobre Roslyn, especialmente en this entrada de blog, parece que debería ser this (busque la "párrafo.

Aparentemente, puede construir un árbol de sintaxis desde la fuente (no es demasiado sorprendente para un compilador, supongo), luego modificarlo utilizando API y finalmente escribirlo de nuevo en una cadena / archivo o lo que sea.

También vea MSDN sobre los árboles de sintaxis de Roslyn conceptualmente, y este walkthrough sobre "Transformación de sintaxis".