Proyectos Personalizados en Visual Studio 2003

Fecha: 14/May/2005 (13-05-2005)
Autor: Bruno Capuano (bcapuano@gmail.com)

 


Introduccion

Hace un tiempo, y gracias a la ayuda de mi amigo LucasQ, me encontré frente a la necesitad de crear proyectos personalizados para Visual Studio 2003. Si bien el detalle de cambios que requerían los proyectos no eran muchos, era una forma de ahorrar tiempo, teniendo datos comunes a todos los assemblies ya configurados. Por ejemplo, toda la información del AssemblyInfo, o los namespaces ya configurados.

Una solución simple para este problema era crear una serie de proyectos en Enterprise Template Projects, luego customizarlos y generar proyectos con esta base. Microsoft publica un tutorial muy completo en Crear una nueva plantilla de Enterprise Templates.

 

Creando Proyectos Propios.

Sin embargo, la solución vino por otro lado. LucasQ, me mostró un proyecto de ejemplo que generaba un instalador y automáticamente se configuraba dentro del VS los proyectos nuevos para agregar.

 

Nota: El objetivo de este artículo no es explicar paso a paso como crear un instalador para proyectos personalizados, pero si mostrar la información que se puede modificar sobre un proyecto existente para crear uno propio.

Este instalador, copia una serie de archivos al directorio de instalación especificado y luego el Visual Studio 2003 se sirve de los mismos para la creación de nuevos proyectos.

Asimismo copia los proyectos en blanco dentro del directorio de templates del Visual Studio 2003.

Si examinamos un poco mas los archivos .vsz (Figura 3), nos encontramos con la siguiente información:

VSWIZARD 7.0

Wizard=VsWizard.VsWizardEngine.7.1

Param="WIZARD_NAME = Ginkgo Class Library"

Param="WIZARD_UI = FALSE"

Param="PROJECT_TYPE = CSPROJ"

Estos son los datos que nos mostraran los nuevos proyectos en la ventana de crear proyectos. Los parámetros que soporta son,

Para más información consultar http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vxconVSZFiles.asp.

El archivo .vsdir es el que provee información a las ventanas de creación de nuevos proyectos y nuevos ítems, aquí se indica el nombre, la posición, el icono y otros datos. Para más información consultar http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vxconVSDirFiles.asp.

Nota: No me parece muy cómoda la forma en la que se organizaron la información. Nótese que los vsz son parecidos a los archivos .ini y los vsdir es simplemente información concatenada con “|”. Existiendo los config de .Net, esto parece un paso atrás.

Bueno finalmente nuestro proyecto compila toda esta información y genera un nuevo instalador que agrega estos proyectos al Visual Studio 2003. Dentro de la estructura general del proyecto hay un par de puntos interesantes para ver.

Fig 5

Dentro de la carpeta Templates\Templates\Vb7\VBWizards\Ginkgo Class Library\Scripts\1033, encontramos un archivo llamado default.js. Este archivo contiene las funciones que se invocan cuando se agrega el nuevo proyecto, si vemos un poco el código del mismo, vemos que utiliza parte de los parámetros que se configuraron en los archivos anteriores y que además tiene comentado código para agregar dinámicamente assemblies al nuevo proyecto. Y al final la línea de compilación del proyecto

//Build project to regenerate propper references

//project.DTE.ExecuteCommand("Build.BuildSolution");

La carpeta Templates\Templates\Vb7\VBWizards\Ginkgo Class Library\Templates\1033, contiene el proyecto de Visual Studio como habitualmente lo conocemos.

Bueno con esta información y el proyecto de ejemplo, podemos empezar a compilar instaladores y ver que nuevas posibilidades tenemos. Les muestro como queda un proyecto base, que ya incluye información en cada uno de las clases que lo componen y también una serie de referencias ya establecidas. Espero que en Visual Studio 2005, esta tarea se haya simplificado un poco.

Ante cualquier duda, pueden escribirme a bcapuano@gmail.com

Saludos

El Bruno

http://spaces.msn.com/members/brunocapuano.


Fichero con el código de ejemplo: bcapuano_Proyectos_Personalizados_en_Visual_Studio_2003.zip - Tamaño 47 KB


ir al índice