Pregunta

Un reciente mención de PostSharp me recordó esto:

El año pasado donde trabajé, estábamos pensando en el uso de la instrumentación PostSharp para inyectar en nuestro código. Esto fue en un entorno de integración de Team Foundation Server Team Build / continua.

Pensando en ello, tengo una sensación molesta por la forma en PostSharp opera - edita el IL generado por los compiladores. Esto me molestó un poco.

No estaba tan preocupado que no sería PostSharp hacer su trabajo correctamente; Estaba preocupado por el hecho de que esta era la primera vez que podía recordar haber escuchado acerca de una herramienta como esta. Estaba preocupado de que otras herramientas podrían no tener esto en cuenta.

De hecho, a medida que avanzábamos a lo largo, que hicieron tienen algunos problemas derivados del hecho de que PostSharp estaba recibiendo confundido acerca de qué carpeta la IL original. Esto estaba rompiendo nuestra construye. Parecía ser debido a un conflicto con el objetivo MSBUILD que resuelve las referencias del proyecto. El conflicto parece ser debido al hecho de que PostSharp utiliza un directorio temporal para almacenar las versiones modificadas del IL.

En cualquier caso, yo no tenía StackOverflow para referirse a aquel entonces! Ahora que hago, me gustaría pedir a todos ustedes si conoce otras herramientas que editan IL como parte de un proceso de construcción; o si Microsoft tiene ese tipo de herramienta en cuenta en Visual Studio, MSBUILD, Generar equipo, etc.


Actualización:. Gracias por las respuestas

La conclusión parece ser que, al menos, con el VS 2010, Microsoft realmente debe tener en cuenta que este tipo de cosas puede suceder. Así que si hay problemas en esta área en VS2010, a continuación, Microsoft puede compartir la culpa.

¿Fue útil?

Solución

Yo sé que Dotfuscator, un código de Ofuscador, no modificar la IL asambleas de asambleas y se utiliza en muchos procesos de construcción.

La IL se modifica no sólo para la ofuscación de código y protección, sino también para inyectar funcionalidad adicional en sus aplicaciones (ver nuestras) blog (de PreEmptive en tiempo de ejecución de Inteligencia aquí .

Además de Infraestructura Común compilador de Microsoft tiene la capacidad de leer en asambleas, modificarlos y volver a escribir ellos. Ver CodePlex para el proyecto.

Otros consejos

Mono.Cecil , una biblioteca marco de la ampliación del conjunto de herramientas System.Reflection, se utiliza por el Lin proyecto Fu .

No estoy seguro acerca de la compatibilidad proceso de construcción, se debe comprobar a cabo para el tamaño.

Fody es una herramienta extensible para tejer ensamblados .NET basada en una arquitectura plugin.

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