Partilhar via


Importar itens de um site existente do SharePoint

O modelo de projeto Importar Pacote de Solução do SharePoint permite reutilizar elementos, como tipos de conteúdo e campos, de sites existentes do SharePoint em uma nova solução do SharePoint do Visual Studio. Embora você possa executar a maioria das soluções importadas sem modificação, há determinadas restrições e problemas a serem considerados, especialmente quando você modifica itens após importá-los.

Observação

Para importar fluxos de trabalho reutilizáveis, use o modelo de projeto Importar Fluxo de Trabalho Reutilizável. Para obter mais informações, consulte Diretrizes para importar fluxos de trabalho reutilizáveis.

Soluções do SharePoint com suporte

O Visual Studio 2012 dá suporte completo à importação de soluções criadas no SharePoint Foundation e no SharePoint Server.

O Visual Studio 2012 não dá suporte à importação de soluções criadas nos seguintes aplicativos:

  • Windows SharePoint Services 3.0

  • Microsoft Office SharePoint Server 2007

  • Visual Studio 2008

  • Microsoft SharePoint Designer 2007

  • Visual Studio 2010

    Embora muitas vezes você possa importar com êxito soluções criadas por esses aplicativos, essa funcionalidade não foi testada e não tem suporte.

Restrições de importação de item

Embora a maioria dos itens do SharePoint possa ser importada de um arquivo .wsp existente, os seguintes itens não têm suporte e podem exigir modificações para funcionar corretamente:

  • Entidades de BDC

  • Elementos de associação de fluxo de trabalho de código

  • Fluxos de trabalho de código

  • Web Parts visuais (.ascx)

  • Serviços Web (.asmx)

  • Associações de tipo de conteúdo

  • Receptores de evento

  • Definições de lista (modelos)

  • Definições de site

    Quando você exporta uma solução do SharePoint Foundation ou do SharePoint Server, esses itens são excluídos automaticamente do arquivo .wsp. No entanto, outros arquivos .wsp gerados usando ferramentas sem suporte podem conter esses itens. (Consulte "Soluções do SharePoint com suporte" no início deste tópico.)

O que acontece quando você importa uma solução

Quando você importa uma solução com o modelo Importar Pacote de Solução do SharePoint, o Visual Studio copia todo o conteúdo do arquivo .wsp e tenta reconciliar e reter o máximo possível de associações e referências entre elementos importados e os respectivos arquivos.

Todos os itens importados são copiados para as pastas correspondentes no Gerenciador de Soluções. Por exemplo, os tipos de conteúdo aparecem na pasta Tipos de conteúdo e as instâncias de lista aparecem em Instâncias de lista. Arquivos associados a um item importado também são copiados para a pasta do item. Por exemplo, uma instância de lista importada inclui seus módulos, formulários e páginas ASPX.

Itens dependentes

Se você selecionar um item no assistente Importar Pacote de Solução do SharePoint, mas não os itens dependentes dele, uma caixa de mensagem informará que os itens dependentes também precisam ser selecionados antes da importação.

O que são recursos?

Os usuários do SharePoint Designer podem ver arquivos inesperados, chamados de recursos, aparecerem nas soluções importadas no Gerenciador de Soluções. Embora os recursos existissem na solução do SharePoint Designer, eles ficavam ocultos. Agora, os recursos ficam visíveis no Visual Studio.

Recursos são contêineres para itens do SharePoint. Cada recurso mantém uma referência para cada item, como tipos de conteúdo e definições de lista, que ele contém. Quando você importa a solução, o Visual Studio configura recursos para todos os elementos importados e tenta manter as relações de recurso para elemento para os arquivos. Todos os arquivos cujas referências não puderam ser resolvidas são colocados na pasta Outros Arquivos Importados.

Para obter mais informações sobre os recursos, consulte Desenvolver soluções do SharePoint e Trabalhar com recursos.

Tratar casos especiais

Em alguns casos, o Visual Studio não pode reconciliar um item com os respectivos arquivos dependentes. Todos os arquivos que o Visual Studio não consegue resolver aparecem na pasta Outros Arquivos Importados. Além disso, suas propriedades DeploymentType são definidas como NoDeployment para que não sejam implantados com a solução.

Por exemplo, se você importar a definição de lista ExpenseForms, uma definição de lista com esse nome aparecerá na pasta Definições de lista no Gerenciador de Soluções junto com os arquivos Elements.xml e Schema.xml. No entanto, os formulários ASPX e HTML associados podem ser colocados em uma pasta chamada ExpenseForms na pasta Outros Arquivos Importados. Para concluir a importação, mova esses arquivos na definição da lista ExpenseForms no Gerenciador de Soluções e altere a propriedade DeploymentType para cada arquivo de NoDeployment para ElementFile.

Ao importar receptores de evento, o arquivo Elements.xml é copiado para o local correto, mas você precisa incluir manualmente o assembly no pacote de solução para que ele seja implantado com a solução. Para obter mais informações sobre como fazer isso, consulte Como adicionar e remover assemblies adicionais.

Ao importar fluxos de trabalho, formulários de InfoPath são copiados para a pasta Outros Arquivos Importados. Se o arquivo .wsp contiver um modelo da Web, ele será definido como a página de inicialização no Gerenciador de Soluções.

Importar campos e recipientes de propriedades

Quando você importa uma solução que tem vários campos, todas as definições de campo separadas são mescladas em um só arquivo Elements.xml em um nó no Gerenciador de Soluções chamado Campos. De maneira semelhante, todas as entradas do recipiente de propriedades são mescladas em um arquivo Elements.xml em um nó chamado PropertyBags.

Campos no SharePoint são colunas de um tipo de dados especificado, como um texto, booliano ou pesquisa. Para obter mais informações, consulte Bloco de construção: tipos de campo e colunas. Recipientes de propriedades permitem que você adicione propriedades a objetos no SharePoint, desde um farm até uma lista em um site do SharePoint. Os recipientes de propriedades são implementados como uma tabela de hash de nomes e valores de propriedade. Para obter mais informações, consulte Gerenciando a configuração do SharePoint ou Configurações do recipiente de propriedades do SharePoint.

Excluir itens no projeto

A maioria dos itens em soluções do SharePoint tem um ou mais itens dependentes. Por exemplo, as instâncias de lista dependem dos tipos de conteúdo, e os tipos de conteúdo dependem dos campos. Após você importar uma solução do SharePoint, o Visual Studio não notificará sobre problemas de referência se você excluir um item na solução, mas não excluir os itens dependentes, até que você tente implantar a solução. Por exemplo, se uma solução importada tiver uma instância de lista que depende de um tipo de conteúdo e você excluir esse tipo de conteúdo, poderá ocorrer um erro na implantação. O erro ocorrerá se o item dependente não estiver presente no servidor do SharePoint. De maneira semelhante, se um item excluído também tiver um recipiente de propriedades relacionado, exclua essas entradas do arquivo PropertyBags Elements.xml. Portanto, se você excluir itens de uma solução importada e receber erros de implantação, verifique se algum item dependente também precisa ser excluído.

Restaurar atributos de recurso ausentes

Ao importar soluções, alguns atributos de recurso opcionais são omitidos do manifesto do recurso importado. Para restaurar esses atributos no novo arquivo do recurso, identifique os atributos ausentes comparando o arquivo do recurso original com o novo manifesto do recurso e siga as instruções no tópico Como personalizar um recurso do SharePoint.

A detecção de conflitos de implantação não é executada em instâncias de lista internas

O Visual Studio não executa a detecção de conflitos de implantação em instâncias de lista internas (ou seja, instâncias de lista padrão que vêm com o SharePoint). A não execução da detecção de conflitos tem a finalidade de evitar a substituição das instâncias de lista internas no SharePoint. As instâncias de lista internas ainda são implantadas ou atualizadas, mas nunca são excluídas nem substituídas. Para obter mais informações, consulte Solucionar problemas de empacotamento e implantação do SharePoint.

Importar fluxos de trabalho do SharePoint Server 2010

Se você importar um fluxo de trabalho criado no SharePoint Server, ele não será executado corretamente após você implantá-lo. O fluxo de trabalho não é executado corretamente porque determinados assemblies estão ausentes e os fluxos de trabalho do SharePoint Server contêm formulários InfoPath que não têm suporte em soluções de fluxo de trabalho do Visual Studio. No entanto, é possível fazer que fluxos de trabalho importados do SharePoint Server funcionem corretamente depois de corrigir alguns itens, por exemplo, adicionar referências aos assemblies do SharePoint Server e reconectar os formulários InfoPath. Para obter mais informações, consulte Importando fluxos de trabalho do SharePoint Server 2010.

Limite de caracteres do nome do item

O Visual Studio tem um limite total de 260 caracteres para nomes de projeto e de item de projeto, incluindo o caminho. Ao importar uma solução, se um nome de item exceder esse limite, você receberá o erro:

O caminho ou o nome de arquivo especificado, ou ambos, são muito longos. O nome de arquivo totalmente qualificado deve ter menos de 260 caracteres, e o nome do diretório deve ter menos de 248 caracteres.

Quando você recebe esse erro, o item não é criado. Esse problema ocorre com mais frequência com módulos importados. Para evitá-lo, execute uma das seguintes ações:

  • Use nomes curtos para o projeto ao inseri-los na caixa de diálogo Adicionar Novo Projeto.

  • Crie o projeto em um local o mais próximo possível da pasta raiz, a fim de encurtar o caminho.

O atributo SharePointProductVersion

Se você importar uma solução criada em uma versão anterior do SharePoint, como o Windows SharePoint Services 3.0 ou o Microsoft Office SharePoint Server 2007, altere o valor do atributo SharePointProductVersion no manifesto do pacote para 12.0 ou insira um controle do gerenciador de scripts em todas as páginas da Web importadas e deixe SharePointProductVersion definido como 14.0. Caso contrário, os formulários da Web importados não serão exibidos no SharePoint.

Tela de fundo

Soluções no SharePoint Foundation e no SharePoint Server incluem um atributo chamado SharePointProductVersion. O SharePoint usa esse atributo em seus manifestos de pacote para determinar a versão do SharePoint para a qual a solução foi projetada. Os dois valores válidos são 12.0 e 14.0. O valor 12.0 indica que o item foi projetado para o Windows SharePoint Services 3.0 ou o Microsoft Office SharePoint Server 2007; o valor 14.0 indica que o item foi projetado para o SharePoint Foundation ou o SharePoint Server.

Para maior segurança ao renderizar páginas ASPX, o SharePoint Foundation e o SharePoint Server exigem que todas as páginas mestras ou ASPX contenham um controle do gerenciador de scripts. Para saber mais sobre o gerenciador de scripts, consulte Visão geral do controle ScriptManager. Como o controle do gerenciador de scripts não estava disponível no Windows SharePoint Services 3.0 nem no Microsoft Office SharePoint Server 2007, é necessário adicionar um a qualquer página do Windows SharePoint Services 3.0 e do Microsoft Office SharePoint Server 2007 que seja atualizada para o SharePoint Foundation ou o SharePoint Server. Páginas ASPX que usam uma página mestra padrão não exigem um controle do gerenciador de scripts porque um já foi adicionado à página mestra padrão. No entanto, páginas ASPX que não usam uma página mestra ou que usam uma página mestra personalizada precisam adicionar um controle de script para funcionar no SharePoint Foundation ou no SharePoint Server.

A ausência de um controle do gerenciador de scripts pode ser um problema quando você importa um projeto do Windows SharePoint Services 3.0 ou do Microsoft Office SharePoint Server 2007 para o Visual Studio 2010, pois o atributo SharePointProductVersion de todos os novos projetos é definido como 14.0. Se você implantar um projeto atualizado que tenha um formulário da Web sem um gerenciador de scripts, o formulário não será exibido no SharePoint.

Confira também