Importación de elementos desde un sitio de SharePoint existente

La plantilla de proyecto Importar paquete de solución de SharePoint permite reutilizar elementos, como tipos de contenido y campos de sitios de SharePoint existentes en una nueva solución de SharePoint de Visual Studio. Aunque puede ejecutar la mayoría de las soluciones importadas sin modificaciones, hay algunas restricciones y aspectos a tener en cuenta, sobre todo si se modifican los elementos después de importarlos.

Nota

Para importar flujos de trabajo reutilizables, use la plantilla de proyecto Importar flujo de trabajo reutilizable. Para más información, vea Instrucciones para importar flujos de trabajo reutilizables.

Soluciones de SharePoint compatibles

Visual Studio 2012 es totalmente compatible con la importación de soluciones creadas en SharePoint Foundation y SharePoint Server.

Visual Studio 2012 no admite la importación de soluciones creadas en las aplicaciones siguientes:

  • Windows SharePoint Services 3.0

  • Microsoft Office SharePoint Server 2007

  • Visual Studio 2008

  • Microsoft SharePoint Designer 2007

  • Visual Studio 2010

    Aunque puede importar soluciones creadas por estas aplicaciones a menudo correctamente, esa funcionalidad no está probada y no es compatible.

Restricciones de la importación de elementos

Aunque la mayoría de los elementos de SharePoint se pueden importar desde un archivo .wsp existente, los elementos siguientes no son compatibles y es posible que se necesiten modificaciones para que funcionen correctamente:

  • Entidades BDC

  • Elementos de asociación de flujo de trabajo de código

  • Flujos de trabajo de código

  • Elementos web visuales (.ascx)

  • Servicios web ( .asmx)

  • Enlaces de tipo de contenido

  • Receptores de eventos

  • Definiciones de lista (plantillas)

  • Definiciones de sitio

    Cuando se exporta una solución desde SharePoint Foundation o SharePoint Server, estos elementos se excluyen automáticamente del archivo .wsp. Pero otros archivos .wsp generados desde herramientas no compatibles pueden contener estos elementos. (Consulte "Soluciones de SharePoint compatibles" anteriormente en este tema).

Qué ocurre al importar una solución

Al importar una solución con la plantilla Importar paquete de solución de SharePoint, Visual Studio copia todo el contenido del archivo .wsp e intenta reconciliar y conservar tantas asociaciones y referencias entre los elementos importados y sus archivos como sea posible.

Todos los elementos importados se copian en carpetas correspondientes en el Explorador de soluciones. Por ejemplo, los tipos de contenido aparecen en la carpeta Tipos de contenido y las instancias de la lista aparecen bajo Lista de instancias. Los archivos asociados a un elemento importado también se copian en la carpeta del elemento. Por ejemplo, una instancia de lista importada incluye sus módulos, formularios y páginas ASPX.

Elementos dependientes

Si selecciona un elemento en el Asistente para importar paquete de solución de SharePoint, pero no sus elementos dependientes, un cuadro de mensaje le informará de que los elementos dependientes también se deben activar antes de importar.

¿Qué son las características?

Los usuarios de SharePoint Designer pueden ver archivos inesperados, denominados características, que aparecen en sus soluciones importadas en el Explorador de soluciones. Aunque las características existían en la solución de SharePoint Designer, estaban ocultas de la vista. Ahora las características son visibles en Visual Studio.

Las características son contenedores de elementos de SharePoint. Cada característica mantiene una referencia a cada elemento, como tipos de contenido y las definiciones de lista que contiene. Al importar la solución, Visual Studio configura las características de todos los elementos importados e intenta mantener las relaciones entre características y elementos de los archivos. Los archivos cuyas referencias no se podrían resolver se colocan en la carpeta Otros archivos importados .

Para obtener más información sobre las características, vea Desarrollo de soluciones de SharePoint y Uso de características.

Control de casos especiales

En algunos casos, Visual Studio no puede reconciliar un elemento con sus archivos dependientes. Cualquier archivo que Visual Studio no haya podido resolver aparece en la carpeta Otros archivos importados. Además, sus propiedades DeploymentType están establecidas en NoDeployment para que no se implementen con la solución.

Por ejemplo, si importa la definición de lista ExpenseForms, aparecerá una definición de lista con ese nombre en la carpeta Definiciones de lista del Explorador de soluciones junto con sus archivos Elements.xml y Schema.xml. Sin embargo, sus formularios ASPX y HTML asociados pueden colocarse en una carpeta llamada ExpenseForms en la carpeta Otros archivos importados . Para completar la importación, mueva estos archivos en la definición de lista ExpenseForms en el Explorador de soluciones y cambie la propiedad DeploymentType de cada archivo de NoDeployment a ElementFile.

Al importar receptores de eventos, el archivo Elements.xml se copia en la ubicación correcta, pero debe incluir manualmente el ensamblado en el paquete de solución para que se implemente con la solución. Para más información sobre cómo hacerlo, vea Cómo: Adición y eliminación de ensamblados adicionales.

Al importar los flujos de trabajo, los formularios de InfoPath se copian en la carpeta Otros archivos importados . Si el archivo .wsp contiene una plantilla web, se establece como la página de inicio en el Explorador de soluciones.

Importación de campos y contenedores de propiedades

Al importar una solución que tiene varios campos, todas las definiciones de campo independientes se combinan en un solo archivo Elements.xml bajo un nodo denominado Campos en el Explorador de soluciones. De forma similar, todas las entradas de contenedor de propiedades se combinan en un archivo Elements.xml bajo un nodo denominado PropertyBags.

Los campos de SharePoint son columnas de un tipo de datos especificado, como texto, booleano o búsqueda. Para obtener más información, vea Bloque de creación: columnas y tipos de campo. Los contenedores de propiedades permiten agregar propiedades a los objetos de SharePoint, desde una granja de servidores a una lista en un sitio de SharePoint. Los contenedores de propiedades se implementan como una tabla hash de valores y nombres de propiedad. Para obtener más información, vea Administrar la configuración de SharePoint o Valores de bolsa de propiedades de SharePoint.

Eliminación de elementos del proyecto

La mayoría de los elementos en las soluciones de SharePoint tienen uno o varios elementos dependientes. Por ejemplo, las instancias de lista dependen de los tipos de contenido y los tipos de contenido dependen de los campos. Después de importar una solución de SharePoint, Visual Studio no le informa de ningún problema de referencia si elimina un elemento de la solución, pero no de sus elementos dependientes, hasta que intente implementar la solución. Por ejemplo, si una solución importada tiene una instancia de lista que depende de un tipo de contenido y elimina ese tipo de contenido, podría producirá un error en la implementación. El error se produce si el elemento dependiente no está presente en el servidor de SharePoint. De forma similar, si un elemento eliminado también tiene un contenedor de propiedades relacionado, elimine esas entradas de contenedor de propiedades del archivo Elements.xml de PropertyBags. Por lo tanto, si elimina los elementos de una solución importada y obtiene errores de implementación, compruebe si es necesario eliminar también los elementos dependientes.

Restauración de atributos de característica que faltan

Cuando se importan soluciones, algunos atributos de características opcionales se omiten en el manifiesto de la función importada. Si quiere restaurar estos atributos en el nuevo archivo de la característica, identifique los atributos que faltan; para ello, compare el archivo de la característica original con el nuevo manifiesto de la característica y siga las instrucciones del tema Procedimiento para personalizar una característica de SharePoint.

La detección de conflictos de implementación no se realiza en instancias de lista integradas

Visual Studio no realiza la detección de conflictos de implementación en instancias de lista integradas (es decir, las instancias de lista predeterminadas incluidas con SharePoint). No realizar la detección de conflictos se hace para evitar sobrescribir las instancias de lista integradas en SharePoint. La instancias de lista integradas se siguen implementando o actualizando, pero nunca se eliminan o sobrescriben. Para más información, vea Solución de problemas de empaquetado e implementación de SharePoint.

Importación de flujos de trabajo de SharePoint Server 2010

Si importa un flujo de trabajo creado en SharePoint Server, no se ejecutará correctamente después de implementarlo. El flujo de trabajo no se ejecuta correctamente porque faltan ciertos ensamblados y los flujos de trabajo de SharePoint Server contienen formularios de InfoPath que no se admiten actualmente en las soluciones de flujo de trabajo de Visual Studio. Pero los flujos de trabajo de SharePoint Server importados se pueden configurar para que funcionen correctamente después de corregir algunos elementos, como agregar referencias a los ensamblados de SharePoint Server y volver a conectar los formularios de InfoPath. Para más información, vea Importación de flujos de trabajo de SharePoint Server 2010.

Límite de caracteres de nombre de elemento

Visual Studio tiene un límite de 260 caracteres totales por proyecto y nombre de elemento de proyecto, incluida la ruta de acceso. Al importar una solución, si un nombre de elemento supera este límite, se produce el error:

La ruta de acceso especificada, el nombre de archivo o ambos son demasiado largos. El nombre de archivo completo debe ser inferior a 260 caracteres y el nombre del directorio debe ser inferior a 248.

Cuando se obtiene este error, no se crea el elemento. Este problema se produce con más frecuencia con los módulos importados. Para evitar este problema, haga lo siguiente:

  • Use nombres cortos para el proyecto cuando los escriba en el cuadro de diálogo Agregar nuevo proyecto .

  • Cree el proyecto en una ubicación lo más cercana posible a la carpeta raíz, con el fin de acortar la ruta de acceso.

Atributo SharePointProductVersion

Si importa una solución creada en una versión anterior de SharePoint como Windows SharePoint Services 3.0 o Microsoft Office SharePoint Server 2007, cambie el valor del atributo SharePointProductVersion en el manifiesto del paquete a 12.0, o bien inserte un control de administrador de script en todas las páginas web importadas y deje SharePointProductVersion establecido en 14.0. De lo contrario, los formularios web importados no se mostrarán en SharePoint.

Información previa

Las soluciones de SharePoint Foundation y SharePoint Server incluyen un atributo denominado SharePointProductVersion. SharePoint usa este atributo en sus manifiestos de paquete para determinar la versión de SharePoint para la que está diseñada la solución. Los dos valores válidos son 12.0 y 14.0. Un valor de 12.0 indica que el elemento está diseñado para Windows SharePoint Services 3.0 o Microsoft Office SharePoint Server 2007; un valor de 14.0 indica que el elemento está diseñado para SharePoint Foundation o SharePoint Server.

Para mejorar la seguridad al representar páginas ASPX, en SharePoint Foundation y SharePoint Server es necesario que todas las páginas maestras o ASPX contengan un control de administrador de scripts. Para obtener más información sobre el administrador de la secuencia de comandos, consulte Información general del control ScriptManager. Como el control del administrador de scripts no estaba disponible en Windows SharePoint Services 3.0 ni Microsoft Office SharePoint Server 2007, se debe agregar uno a cualquier página de Windows SharePoint Services 3.0 o Microsoft Office SharePoint Server 2007 que se actualice a SharePoint Foundation o SharePoint Server. Las páginas ASPX que utilizan una página maestra estándar no requieren un control de administrador de scripts porque ya se agrega a la página maestra estándar. Pero las páginas ASPX en las que no se usa una página maestra o en las que se usa una página maestra personalizada deben agregar un control de script para que funcionen en SharePoint Foundation o SharePoint Server.

La ausencia de un control de administrador de scripts puede ser un problema cuando se importa un proyecto de Windows SharePoint Services 3.0 o Microsoft Office SharePoint Server 2007 en Visual Studio 2010, porque el atributo SharePointProductVersion de todos los nuevos proyectos está establecido en 14.0. Si implementa un proyecto actualizado que tiene un formulario web sin administrador de scripts, el formulario no se mostrará en SharePoint.

Consulte también