Pregunta

Fondo . Quiero crear un compilador de VB personalizada, extendiendo el compilador "original", para manejar mis atributos en tiempo de compilación personalizados

Pregunta : después de haber creado mi compilador de costumbre y tengo un archivo ejecutable capaz de compilar el código VB a través de la interfaz de línea de comandos estándar, ¿Cómo se integra este compilador con el Visual Studio IDE? (Por ejemplo, que al pulsar "compilación" o "acumulación" hará uso de mi compilador en lugar del compilador por defecto).

Editar : (corríjanme si me equivoco)

A partir de las reacciones aquí, veo a esta pregunta es chocante un poco, por lo que voy a explicar con más detalle mis necesidades y antecedentes: .NET nos proporciona un gran mecanismo llamado Atributos. Por lo que yo entiendo, atributos que se aplican a su comportamiento previsto sobre el elemento atribuido (montaje, módulo, clase, método, etc.) - atributos deben ser reflexionados. Así que el verdadero truco aquí está reflejando el comportamiento y la aplicación en el lugar correcto.

Vamos a echar serialización por ejemplo: Decoramos una clase con el atributo Serializable. A continuación, pasar una instancia de la clase con el método Serialize el formateador. El formateador refleja en el ejemplo, comprobar si tiene el atributo Serializable, y actuar en consecuencia.

Ahora, si examinamos la sincronización, banderas, atributos obsoletos y CLSCompliant, entonces la verdadera pregunta es: ¿quién refleja sobre ellos? Al menos en algunos casos, tiene que ser el compilador (y / o IDE). Por lo tanto, parece que si deseo de crear atributos personalizados que el cambio de comportamiento de un elemento independientemente de cualquier consumidor específico, debo extender el compilador para reflexionar sobre ellos durante la compilación.

Por supuesto, estas no son mis impresiones personales: el libro " Aplicada .NET Atributos " proporciona un ejemplo completo de la creación de un atributo personalizado y una costumbre compilador de C # para reflexionar sobre ese atributo en la compilación (el ejemplo se utiliza para poner en práctica 'java-estilo comprueba excepciones').

¿Fue útil?

Solución

Salida "MSBuild general" en http://msdn.microsoft. com / es-es / library / ms171452.aspx . proyectos de Visual Studio son proyectos de MSBuild. Creo que todo lo que tendría que hacer es hacer un par menores cambios. No he hecho por un compilador, pero lo hice con ILMerge después de compilar y funciona muy bien. Sin fisuras e incluso posible depurar los conjuntos se fusionaron.

Otros consejos

Confirmar " BuildAction propiedad " y " CustomTool propiedad".

Hace algunos años, leí un excelente artículo sobre la creación de un compilador de encargo, registrándolo, y el establecimiento de estas propiedades. No puedo encontrar el artículo ahora, pero esto debe empezar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top