Registro de los controles de Silverlight con Visual Studio y Blend
cambiar la historia:
- 30/04/2009: Se publica para Visual Studio 2008 SP1, Blend 3 Preview, Silverlight 3 Beta 1, y Silverlight Toolkit 3 marzo 2009 Lanzamiento .
- 11/29/2009: Se ha actualizado para Visual Studio 2010 Beta 2 .
Voy a mantener el contenido al día con la última versión de Visual Studio, Blend y Silverlight.
Introducción
Esto es parte de la serie a tiempo los cambios de diseño en la aplicación Silverlight Toolkit versión marzo 2009 . Este artículo ilustra la integración de Silverlight Toolkit con Visual Studio y Blend 3 después de ejecutar Silverlight Toolkit 3 marzo 2009 Installer, y explica cómo se hace, por lo que puede registrar los controles de Silverlight con Visual Studio y Blend también.
Mezcla de Integración
Después de instalar Silverlight 3 Beta1 Herramientas , Blend 3 preliminar , y Silverlight Toolkit 3 marzo 2009 (ver post Silverlight Toolkit tiempo de diseño Características: Marzo 2009 Lanzamiento de actualización , Silverlight 3 Desarrollo con Visual Studio 2008 y Blend 3 sección para más información), crear un Silverlight 3 Aplicación de Blend 3, podemos ver que los controles de Silverlight Toolkit aparece automáticamente en Asset Bibliotecas:
El usuario puede arrastrar y soltar los controles Toolkit de Asset Biblioteca de diseño o la vista XAML, y Blend añadirá automáticamente referencia de ensamblado, prefijo xmlns y XAML, muy conveniente:
Visual Integration Studio
Abra el proyecto en Visual Studio, podemos ver que los controles Toolkit aparece automáticamente en la caja de herramientas de Visual Studio, y el usuario puede arrastrar y soltar los controles de cuadro de herramientas para el diseño o la vista XAML, así:
Además de caja de herramientas, conjuntos Toolkit también aparecen en cuadro de diálogo Agregar referencia:
Elegir elementos del cuadro de herramientas y de diálogo:
Ejecución
La integración con Visual Studio y Blend se realiza a través del registro. Si abre "Silverlight Toolkit 2009.msi 3 de marzo" en Orca , se puede ver la magia de registro:
Registro con Visual Studio
AssemblyFoldersEx
El registro en Visual Studio se hace principalmente a través de [HKLM | HKCU] \ Software \ Microsoft \ Microsoft SDK \ Silverlight \ v3.0 \ AssemblyFoldersEx. Las referencias en Visual Studio tiene una página muy buena explicación sobre AssemblyFoldersEx y la resolución de referencia. Es un poco anticuado, y es para. Netos en lugar de Silverlight. Pero es sobre todo la derecha para Silverlight también, y muestra la raíz del mecanismo de caja de herramientas nuevo registro con Visual Studio 2010. Hemos trabajado duro para racionalizar el mecanismo de registro, la consolidación y la simplificación de que a través de herramientas como msbuild, Visual Studio y Blend.
Tome Silverlight Toolkit 3 10 2009 versión como ejemplo:
c: \> reg consulta "HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Microsoft SDK \ Silverlight \ v3.0 \ AssemblyFoldersEx \ SilverlightToolkit0910" / s
HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Microsoft SDK \ Silverlight \ v3.0 \ AssemblyFoldersEx \ SilverlightToolkit0910
(Predeterminado) REG_SZ C: \ Archivos de programa \ Microsoft SDK \ Silverlight \ v3.0 \ Toolkit Oct09 \ \ bin \HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Microsoft SDK \ Silverlight \ v3.0 \ AssemblyFoldersEx \ SilverlightToolkit0910 \ Herramientas
- AssemblyFolderBase indica la plataforma marco de destino. Por encima de ruta del Registro "\ Software \ Microsoft \ Microsoft SDK \ Silverlight" indica Silverlight SDK. Otros valores posibles de AssemblyFolderBase:
- "Software \ \ Microsoft \ Microsoft SDK \ Windows"
- "\ Software \ \ Microsoft. NETFramework"
- "\ Software \ \ Microsoft. NETCompactFramework"
- FrameworkVersion indica la versión del marco de destino. "V3.0" en el ejemplo anterior indica que es para Silverlight 3. Para Silverlight 4, utilice "v4.0".
- AssemblyFoldersSuffix describe el objetivo secundario. "AssemblyFoldersEx" en el ejemplo anterior le dice a construir el sistema de cómo resolver las referencias de montaje al camino de la asamblea se hace referencia no se da. Otros valores típicos de AssemblyFoldersSuffix:
- "Ruta de la instalación»: la situación de Silverlight SDK está instalado.
- "ReferenceAssemblies": la situación en las asambleas de referencia Silverlight SDK están instalados.
- PackageName indica el nombre del paquete registrado, y su valor predeterminado indica donde está instalado. En el ejemplo anterior, "SilverlightToolkit0910" indica que es Silverlight Toolkit 10 2009 liberación, así como su valor por defecto de "C: \ Archivos de programa \ Microsoft SDK \ Silverlight \ v3.0 \ Toolkit Oct09 \ \ bin \" indica donde está instalado. Con este registro, las asambleas Toolkit se mostrarán en el diálogo de añadir Referencia y Herramientas de diálogo Elegir elementos, y pueden ser hechas por otros proyectos de Silverlight sin la ruta indirecta.
- Caja de herramientas: la existencia de caja de herramientas clave sub indica a Visual Studio 2010 para explorar todas las asambleas en la ruta de instalación de este paquete, y agregar todos los controles encontró a Visual Studio Herramientas, excepto aquellos con ToolboxBrowsableAttribute (falso) especificado.
Cuadro de herramientas Controles Installer (obsoleto)
Jim Nakashima blogged sobre Cuadro de herramientas Controles de instalación de controles de WPF en su puesto ¿Ha visto el cuadro de herramientas Controles de instalación? en 2007. Cuadro de herramientas Controles de paquete de instalación es ahora parte de Visual Studio 2008, pero no funciona para Silverlight debido a un error que posteriormente se fija en Visual Studio 2010. Dada la nueva AssemblyFoldersEx \ mecanismo de registro caja de herramientas, no hay razón para utilizar TCI con Visual Studio 2010 y versiones posteriores.
Registrarse en Mezcla
El registro en Blend es a través de HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Expression \ Mezcla \ v3.0 \ Herramientas \ Silverlight \ v3.0:
c: \> reg consulta "HKLM \ Software \ Microsoft \ expresión \ mezcla \ 3,0 \ toolbox \ Silverlight \ v3.0 \ SilverlightToolkit0910" / s
HKEY_LOCAL_MACHINE \ Software \ Microsoft \ expresión \ mezcla \ 3,0 \ toolbox \ Silverlight \ v3.0 \ SilverlightToolkit0910
(Predeterminado) REG_SZ C: \ Archivos de programa \ Microsoft SDK \ Silverlight \ v3.0 \ Toolkit Oct09 \ \ bin \
Unni Ravindranathan post 's blog Blend 3 extensibilidad tiene más información acerca de este mecanismo. Puede clase de cartografía de este mecanismo de registro anteriormente mecanismo de Visual Studio de registro:
- AssemblyFolderBase es "\ Software \ Microsoft \ Expression \ Mezcla \ v3.0 \ Herramientas \ Silverlight"
- FrameworkVersion es "3,0"
- PackageName es "SilverlightToolkit0910", y su valor por defecto "C: \ Archivos de programa \ Microsoft SDK \ Silverlight \ v3.0 \ Toolkit Oct09 \ \ bin \" indica donde está instalado.
Una advertencia: si las asambleas registradas dependen de otros ensamblados, los ensamblados dependientes necesitan estar en el mismo directorio que las asambleas registrado, o se registró con el AssemblyFoldersEx como se describe anteriormente.
Conclusión
Registro con Visual Studio y Silverlight Toolkit Mezcla hace controles mucho más fácil de usar para los desarrolladores. Estamos en constante búsqueda de mejorar el mecanismo de registro con la esperanza de que sea simple y uniforme en los diseñadores (Visual Studio y Blend) y tecnologías (WPF y Silverlight). Todos los comentarios son bienvenidos!








@ Doych
Hola Doych,
Además de HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Microsoft SDK \ Silverlight \ v4.0 \ AssemblyFoldersEx \ RedControl \ Toolbox, también tendrá que establecer HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Microsoft SDK \ Silverlight \ v4.0 \ AssemblyFoldersEx \ RedControl de valor por defecto para instalar su carpeta. En cuanto a las clases internas de caja de herramientas, se trata de un error con TCI (muchos de los controles internos de las asambleas no CC.TT.), y debe ser trabajado principalmente en torno a los conocimientos tradicionales última versión.
Gracias,
-Ning
@ Harsha
Hola Harsha,
Sí, esto sólo funciona para VS2010. Para VS2008, usted tiene que utilizar TCI, y no se garantiza que funcione. Si usted desarrolla para Silverlight, su mejor opción es actualizar a VS2010.
Gracias,
-Ning
Muchas gracias,
Esto es trabajo para mí con vs 2010. Pero los controles no aparecen en frente a 2008. ¿Cómo lograrlo .. por favor ayuda!
Hola Ning,
Estoy usando VS2010 RTM con SL4. Y he seguido sus sugerencias con el fin de registrar mi control de Silverlight en Visual Studio caja de herramientas. No funciona para mí. Traté de registrarme mi control sin utilizar caja de herramientas de control de instalación. Acabo de añadir la clave de Registro -
HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Microsoft SDK \ Silverlight \ v4.0 \ AssemblyFoldersEx \ RedControl \ Herramientas
Si agrega el control al Cuadro de herramientas al crear una nueva pestaña y luego Elegir elementos, que funciona bien.
Es interesante que después de instalar Silverlight Toolkit 4 marzo de 2010, los controles Toolkit no se registraron correctamente. Todos sus clases internas eran visibles.
¿Tiene alguna sugerencia?
Gracias.
Doychin.
Pushp @
Hola Pushp,
Lo siento por la molestia
manera Sí, el problema de iconos que se conoce, y no hay documentado públicamente / apoyo para poder solucionarlo, AFAIK. Usted puede tratar de instalar los controles primero, y luego instalar Silverlight SDK, o sus actualizaciones, y ver si ese arreglar el tema del registro de control.
Daremos a conocer un nuevo mecanismo de control de registro, así como solucionar el problema de TCI, con VS2010, asi que espero que esto tendrá mucho más fácil.
Gracias,
-Ning
Hola Ning,
Gracias por la aclaración. ¿Hay algún otro enfoque que podría seguir para lograr el mismo resultado? Esto es fundamental para mi proyecto.
También probé el kit de herramientas de Silverlight manera registros de sus controles (poner las entradas del registro en Microsoft SDK / Silverlight ... y el uso de la acción personalizada (gestión actioins caja de herramientas) para actualizar caja de herramientas, pero el problema que estoy enfrentando aquí es que no veo los iconos de mi controles en la caja de herramientas, en vez que veo un icono por defecto para todos mis controles.
Cualquier ayuda es muy apreciada.
Gracias,
Pushp
Pushp @
Hola Pushp,
No funciona. Como dije en voz alta, hay algunos problemas con la IOC en VS2008 que se fijará en VS2010 no (CTP o Beta1). También estamos trabajando en la simplificación de registro de cuadro de herramientas, así que estad atentos para la próxima versión pública de VS2010.
Gracias,
-Ning
¡Hola!
¿Sabía valor de la configuración del Registro de SilverlightControls a 1 (en lugar de WPFControls) para el registro de los controles de Silverlight en la obra de VS para usted? Si bien las obras de WPF, no su trabajo para los controles de Silverlight.
Gracias,
Pushp