miércoles, 5 de diciembre de 2007

Build Events en Visual Studio

Si alguna vez has desarrollado con Visual Studio Team Suite, y has hecho una solución con un proyecto y sus correspondiente proyectos de Test te habrás encontrado con el problema que ciertos archivos (como los de configuración) tienen que estar replicados en ambos proyectos, esto a veces trae problemas, por ejemplo que nos olvidemos de actualizar uno de los dos que ha cambiado como resultado del proceso de desarrollo o depuración. Hay un modo para que esto sea automático y es aprovechando una característica del MSBuild, los Events.

Eventos en MSBuild

Sencillamente vamos a la ventana de propiedades del proyecto y colocamos un script que copie automáticamente los archivos que querramos al otro proyectos antes de compilar, del siguiente modo:


Listo, por supuesto que el poder de los eventos en MSBuild no se limita a esto, podemos hacer infinidad de cosas, ejecutar un assembly (como en el post en que autoversionamos los assemblies con una tarea de MSBuild), invocar aplicaciones, etc, etc. Hasta la próxima

martes, 4 de diciembre de 2007

Tipos internal visibles desde otros assemblies

Por esas cosas de los frameworks que uno hace para la empresa me encontré con que un helper necesitaba acceder a ciertas partes del assembly que lo referenciaba, pero estas partes por cuestiones de diseño debian ser internal. Por lo tanto necesita un modo de poder ver desde otro assembly un tipo internal de mi assembly, bien, esto es posible de un modo elegante, simplemente abrimos el AssemblyInfo.cs del proyecto desde el que queremos que se vean los tipos internal y agregamos la siguiente línea:

[assembly: InternalsVisibleTo("NombreDelAssembly")]

Donde NombreDelAssembly es el nombre del assembly que va a poder ver los tipos internal del que acabo de modificar. Es todo, no parece muy últil pero en ciertos casos es indispensable. (por no decir la única salida) Un saludo.