¿Alguien sabe de una utilidad para preprocesar un archivo fuente C# sin compilarlo, de manera similar a usar el indicador -E en GCC? He intentado utilizar GCC - procesa con éxito #if
directivas, pero se ahoga con cualquier #region
directivas ...¿Existe una herramienta de preprocesamiento C#?
Idealmente, me gustaría ser capaz de ejecutar la herramienta sobre un archivo .cs para eliminar cualquier #if
bloques que evalúan a falso, y, opcionalmente, ser capaz de bandera si se debe quitar/dejar comentarios intactas, #region
, #pragma
directivas etc.
para poner esto en contexto, quiero ser capaz de un poco de publicar el código fuente que forma parte de un (mucho) proyecto más grande, al tiempo que se eliminan las partes que solo son relevantes para el proyecto más grande. A modo de ejemplo, hay trozos de código que tener este aspecto:
#if (SUBPROJECT)
namespace SubProject
#else
namespace CompleteProject
#endif
{
public class SomeClass()
{
#if (!SUBPROJECT)
// This might call a method contained in an assembly that potentially
// won't be available to the sub-project, or maybe a method that hooks
// into a C library via P/Invoke...
string result = CallSomeCleverMethod();
#else
// This might call a method that performs a simplified version of the
// above, but does so without the above's assembly or P/Invoke
// dependencies...
string result = CallSomeSimpleMethod();
#endif
}
}
Por favor, recuerda que no estoy tratando de hacer construye aquí - esto es puramente sobre la publicación de sólo un subconjunto del código fuente de un proyecto más amplio.
Cualquier idea/ayuda apreciada.
¿Dónde puedo obtener el ejecutable? – NightOwl888
Es parte de la colección de compiladores de GNU, probablemente ya esté instalada si está ejecutando OS X o Linux. Si está ejecutando Windows, MinGW es probablemente lo que necesita. –
Encontré uno que funciona aquí: http://mcpp.sourceforge.net/download.html, pero el ejecutable es mccp en lugar de cpp. – NightOwl888