martes 7 de octubre de 2008

Problema: menú de Agregar Vistas (Add View) no aparece.

Si el menú “Add View (with pressenter) and “Add WPF-View (with presenter)” no aparece al momento de crear una solución con SCSF – April 2008 en Visual Studio 2008 con el Services Pack 1 Beta.

ViewRecipesIssue

Causa

El Guidance Package verifica si es que el proyecto donde se agregaran las vistas (Views) se han agregado las siguientes referencias para habilitar “Add View (with presenter) and “Add WPF-View (with presenter)”:

- Microsoft.Practices.CompositeUI assembly

- Microsoft.Practices.ObjectBuilder assembly

- Insfractucture.Interface Project

El template del proyecto que es usado por SCSF tiene la variable $RootNamespace$ como prefijo en las propiedades del proyecto AssemblyName.

<AssemblyName>$RootNamespace$.Infrastructure.Interface</AssemblyName>

Parece ser que en el Visual Studio 2008 sin SP1, la opción “Create Smart Client Solution” ignora la variable $RootNamespace$ en el nombre del assembly. Por lo tanto el nombre del assembly siempre toma el valor como Insfractucture.Interface.

Solución

Para solucionar este inconveniente, es necesario que modifiquemos el código de nuestro Guidance Package, y tenemos que seguir los siguientes pasos:

- Abrir la solución GuidancePackage.sln

- En el Solution Explorer, abrimos el archivo ViewTemplateReferenceVB.cs ubicado en la carpeta References, del proyecto SmartClientFactoryPackage.

- Luego buscamos la siguiente línea de código en el archivo:

Line #154: if (reference.Identity == referenceIdentity) return true;

- Remplazamos esa línea de código por la siguiente:

Line #154: if (reference.Name == referenceIdentity) return true;

Repetimos el tercer y cuarto paso para el archive ViewTemplateReferenceCS.cs ubicado en la carpeta Reference, del proyecto SmartClientFactoryPackage (Línea de código 153).