visual studio microsoft developer descargar community code .net visual-studio compiler-construction ide-customization

.net - microsoft - visual studio community



Integrando un compilador personalizado con el IDE de Visual Studio (2)

Antecedentes : quiero crear un compilador de VB personalizado, extendiendo el compilador "original", para manejar mis atributos de tiempo de compilación personalizados.

Pregunta : después de crear mi compilador personalizado y obtener un archivo ejecutable capaz de compilar el código VB a través de la interfaz estándar de línea de comandos, ¿cómo integro este compilador con el IDE de Visual Studio? (de modo que presionar "compilar" o "compilar" usará mi compilador en lugar del compilador predeterminado).

EDITAR : (Corrígeme si estoy equivocado)

A partir de las reacciones aquí, veo que esta pregunta es un poco impactante, así que explicaré más a fondo mis necesidades y antecedentes: .NET nos proporciona un gran mecanismo llamado Atributos. Por lo que yo entiendo, hacer que los atributos apliquen su comportamiento previsto sobre el elemento atribuido (ensamblaje, módulo, clase, método, etc.) - los atributos deben ser reflejados. Entonces, el verdadero truco aquí es reflejar y aplicar el comportamiento en el lugar correcto.

Tomemos Serialización por ejemplo: Decoramos una clase con el atributo Serializable. Luego pasamos una instancia de la clase al método Serialize del formateador. El formateador reflexiona sobre la instancia, verifica si tiene el atributo Serializable y actúa en consecuencia.

Ahora, si examinamos los atributos Sincronización, Indicadores, Obsoletos y CLSCompliantes, entonces la verdadera pregunta es: ¿quién reflexiona sobre ellos? Al menos en algunos casos, tiene que ser el compilador (y / o IDE). Por lo tanto, parece que si deseo crear atributos personalizados que cambien el comportamiento de un elemento independientemente de cualquier consumidor específico, debo extender el compilador para que refleje sobre ellos en la compilación.

Por supuesto, estos no son mis puntos de vista personales: el libro " Applied .NET Attributes " proporciona un ejemplo completo de creación de un atributo personalizado y un compilador de C # personalizado para reflejar ese atributo en la compilación (el ejemplo se utiliza para implementar "estilo java" verificaciones de excepciones ").


Consulte "Descripción general de MSBuild" en http://msdn.microsoft.com/en-us/library/ms171452.aspx . Los proyectos de Visual Studio son proyectos de MSBuild. Creo que todo lo que tendrías que hacer es hacer un par de cambios menores. No lo hice para un compilador, pero lo hice con ILMerge después de la compilación y funciona muy bien. Inconsútil e incluso posible para depurar los ensamblados combinados.


Consulte "Propiedades de BuildAction" y "Propiedad de CustomTool" en http://msdn.microsoft.com/en-us/library/0c6xyb66(VS.80).aspx

Hace unos años, leí un excelente artículo sobre cómo crear un compilador personalizado, registrarlo y establecer estas propiedades. No puedo encontrar el artículo ahora, pero esto debería ayudarte a comenzar.