el Guille, la Web del Visual Basic, C#, .NET y más...
Ir al índice de Visual Studio 2008 y .NET Framework 3.5 Visual Studio 2008

Cómo personalizar las plantillas de Visual Studio 2008

Y dónde guarda el Windows los datos del usuario y la "organización"

 
Publicado el 02/Ene/2008
Actualizado el 02/Ene/2008
Autor: Guillermo 'guille' Som

En este artículo te voy a mostrar cómo cambiar en el registro de Windows los datos del "propietario" del equipo y cómo cambiar las plantillas de los proyectos de Visual Studio 2008 (y 2005) para que puedas personalizar el contenido de los ficheros AssemblyInfo.



 

Introducción:

Pues eso... que al crear los proyectos de Visual Studio 2008 en el Windows Server 2008 de 64 bits que estoy probando, al crear los nuevos proyectos me dice que la empresa es Microsoft... y claro, todavía no me han contratado como para que salga el nombre de ellos en mis proyectos ;-))))

En el Windows Vista me pasaba algo parecido, pero no mostraba Microsoft, simplemente no mostraba nada de nada.

En este artículo te voy a mostrar cómo cambiar en el registro de Windows los datos del "propietario" del equipo, para que puedas poner lo que quieras, también te mostraré cómo cambiar las plantillas de los proyectos para que puedas personalizar el contenido de los ficheros AssemblyInfo, que es donde se guardan los datos de la empresa que hace el programa y los datos de copyright (derechos de autor), etc.

Cambiar el registro de Windows para que indique tus datos como usuario y empresa

En las capturas que te voy a mostrar, (y los sitios del registro que debes modificar) serán para un Windows Server 2008 de 64 bits y un Windows Vista Ultimate de 32 bits. La ubicación de este último servirá para el resto de Windows (supongo).

En el Windows Server 2008, al menos en la Release Candidate 1 (RC1) que es la que estoy usando, el nombre del usuario de Windows es "Windows User" y la organización es una cadena vacía, (ver la figura 1). Esos datos son los que se usan cuando instalas algo... los datos que te muestra para saber quién eres.

Figura 1. El nombre de usuario en Windows Server 2008 RC1
Figura 1. El nombre de usuario en Windows Server 2008 RC1

De esos datos, el Visual Studio 2008 (y también el 2005) usa el valor de RegisteredOrganization, que ahora que lo pienso, puede que no estuviera en blanco... ya que es posible que sea Microsoft, porque eso es lo que me mostraba en los nuevos proyectos creados... bueno... es posible que esa captura de la figura 1 no fuera la adecuada... pero la que te muestro en la figura 2, si que lo es... además la he dejado en grande para que se vea la clave del registro en la que están esos datos.

Como puedes ver en la figura 2, el dato que debes cambiar (que es el único que usa el Visual Studio) es el nombre de la organización (RegisteredOrganization), también puedes cambiar el valore de RegisteredOwner, pero ese dato no se usa en el Visual Studio.

Fíjate en el nombre de la clave del registro: Wow6432Node, ya que es un sistema de 64 bits y es ese valor el que usa el Visual Studio 2008 (y supongo que también el 2005, pero en el equipo de 64 bits solo tengo instalado el 2008).

Figura 2. La clave del registro de Windows 2008 Server de 64 a cambiar
Figura 2. La clave del registro de Windows 2008 Server de 64 a cambiar

Al hacer ese cambio en el registro y crear un nuevo proyecto, los datos que te mostrará en "Company" y en "Copyright" serán los que hayas indicado en el registro de Windows (ver la figura 3).

Figura 3. Los datos del ensamblado de Visual Basic 2008
Figura 3. Los datos del ensamblado de Visual Basic 2008

Si estás usando un Windows Vista, la clave del registro es diferente, (ver la figura 4), al menos en un Windows de 32 bits, ya que en el de 64 es posible que sea como el mostrado en la figura 2.

Figura 4. La clave del registro de Windows Vista de 32
Figura 4. La clave del registro de Windows Vista de 32

Al hacer este cambio en el Vista, los datos del proyecto también serán como lo mostrado en la figura 3 (en realidad esa captura es del Windows Vista).

 

Modificar las plantillas de Visual Studio para personalizar el AssemblyInfo

Independientemente de que cambies esos valores del registro de Windows, también puedes cambiar las plantillas usadas por el Visual Studio 2008 para cada nuevo proyecto.

Esa plantillas están en dos sitios diferentes, uno es para usarlo si se indica en el devenv.exe, es decir, si se "resetea" la configuración de la instalación de Visual Studio 2008 (o eso es lo que supongo). Y esos ficheros o plantillas están en ficheros comprimidos (.zip). Pero además de esas plantillas comprimidas, hay otras que no están comprimidas, aunque el nombre de la carpeta (o directorio) en la que está se llama como los comprimidos, de hecho mantiene hasta la extensión .zip.
En este último sitio es donde puedes cambiar los ficheros AssemblyInfo para que se reflejen los valores que tu quieres que tengan en cada nuevo proyecto.

La ubicación de esas plantillas estarán en directorios para cada tipo de proyecto, es decir, habrá una para las aplicaciones de consola, otra para las aplicaciones de Windows.Forms, otra para las aplicaciones de WPF, etc. Además habrá carpetas para cada uno de los lenguajes que tengas instalado.

Por ejemplo, en el Windows Server 2008 de 64 bits, las plantillas del proyecto de tipo consola de Visual Basic para una instalación en inglés, está en la carpeta:

C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplatesCache\VisualBasic\Windows\1033\ConsoleApplication.zip

En un Windows Vista de 32 bits y también en inglés (tanto el Windows como el Visual Studio), están en:

C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplatesCache\VisualBasic\Windows\1033\ConsoleApplication.zip

Esos directorios (aunque por la extensión parezcan que son ficheros ZIP) contienen cada uno de los ficheros que se usan en ese tipo de proyecto, y entre esos ficheros está el AssemblyInfo.

El contenido de ese fichero (o parte de él) es como esto que te muestro:

<Assembly: AssemblyTitle("$projectname$")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("$registeredorganization$")> 
<Assembly: AssemblyProduct("$projectname$")> 
<Assembly: AssemblyCopyright("Copyright © $registeredorganization$ $year$")> 
<Assembly: AssemblyTrademark("")> 

Listado 1. El código de AssemblyInfo.vb de una aplicación de consola

Como puedes ver ene el código del listado 1, en AssemblyCompany y también en AssemblyCopyright se usa $registeredorganization$ para indicar al asistente de Visual Studio de que use el nombre guardado en el registro de Windows.

Pero si en lugar de que sea eso lo que se muestre (ver la figura 3), quieres que sea algo más personalizado (o si no quieres o no puedes modificar el registro de Windows), puedes escribir lo que quieras.

Por ejemplo, en mis proyectos siempre uso en el Copyright mis datos (Guillermo 'guille' Som) y en el atributo Trademark, me gusta poner la versión del lenguaje usado y el del framework que estoy usando. Así que... mi fichero AssemblyInfo.vb tendrá el aspecto del listado 2.

<Assembly: AssemblyTitle("$projectname$")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("$registeredorganization$")> 
<Assembly: AssemblyProduct("$projectname$")> 
<Assembly: AssemblyCopyright("©Guillermo 'guille' Som, $year$")> 
<Assembly: AssemblyTrademark("Microsoft Visual Basic 2008 (.NET 2.0)")>

Listado 2. El código personalizado de AssemblyInfo.vb de una aplicación de consola

De esta forma, al crear nuevos proyectos, lo que tendré en las propiedades del ensamblado será lo que muestro en la figura 5.

Figura 5. Las propiedades del ensamblado con el fichero personalizado
Figura 5. Las propiedades del ensamblado con el fichero personalizado

 

Si estás usando el Windows Vista con las cosillas esas de seguridad, debes tener en cuenta que esos ficheros están en un disco que el sistema considera "protegido", por tanto, para modificarlos, lo mejor es que hagas una copia del fichero AssemblyInfo en otro directorio "no protegido", lo edites y guardes, y después lo vuelvas a copiar en el directorio original, ya que si intentas editarlo directamente, pueden pasar dos cosas (es que no lo he probado, pero supongo que ocurrirá algo), una es que no te deje guardarlo y la otra (y más posible) es que lo guarde sin problemas y sin decir ni mú... pero en vez de guardarlo en el directorio "protegido" lo guardará en el de "VirtualStore". Y te puedo asegurar que el Visual Studio no lo buscará en el directorio ese virtual...

Todo este rollo del VirtualStore es porque el Windows Vista no permite que se grabe en el ciertas carpetas del sistema (como Windows, Program files, el raíz del disco de arranque, etc.) si no se está ejecutando como administrador al 100% de privilegios (o casi), y si guardas algo (desde un programa, no directamente), pues se guarda, es decir, no da error de que no se puede guardar ni pide permiso para hacer eso... simplemente lo guarda y tú ni te enteras. Pero no lo guarda en la carpeta "protegida" sino en ese otro sitio especial.

¿Dónde están esas plantillas?

Solo me queda decirte dónde están los ZIP con las plantillas (tendrás que descomprimirlo o abrirlo con el propio Windows para modificarlos, pero en el caso de Windows Vista, recuerda lo que te acabo de comentar hace un momento).

Las plantillas están en la carpeta Common7\IDE\ProjectTemplates del directorio de instalación de Visual Studio (recuerda que vale tanto para Visual Studio 2005 como para Visual Studio 2008). En ese directorio tendrás otras carpetas, según los lenguajes instalados, que como puedes ver en la figura 6, también están los proyectos, Web, etc.

Figura 6. Estructura del directorio de los template en Windows Vista
Figura 6. Estructura del directorio de los template en Windows Vista

Y en la figura 7 tienes la estructura del directorio con los templates listos para usar, pero esta vez en un Windows Server 2008 y mostrando todos los tipos de proyectos de Windows para Visual Basic.

Figura 7. Estructura del directorio de templates cache en un Windows Server 2008
Figura 7. Estructura del directorio de templates cache en un Windows Server 2008

 

Y esto es todo... recuerda que también "debería" funcionar con el Visual Studio 2005 y en los Windows XP y Windows Server 2003.

 

Nos vemos.
Guillermo



 


La fecha/hora en el servidor es: 23/12/2024 18:02:55

La fecha actual GMT (UTC) es: 

©Guillermo 'guille' Som, 1996-2024