Compartilhar via


Implantar recursos personalizados para conjuntos de sites atualizados no SharePoint Server 2013

APLICA-SE A:yes-img-132013 no-img-162016 no-img-192019 no-img-seSubscription Edition no-img-sopSharePoint no Microsoft 365

Este artigo descreve como implementar funcionalidades personalizadas através de pacotes de soluções num farm do SharePoint Server 2013 que foi atualizado a partir do SharePoint Server 2010. Ele inclui informações e procedimentos para cenários suportados. Além disso, introduz o mascaramento de recurso.

Coisas que você precisa saber

Esta seção descreve as informações de pré-requisito que você precisa saber antes de começar. Isso inclui o seguinte:

Quem precisa ler isso e por que

Este artigo destina-se a profissionais de TI que têm de trabalhar com programadores para implementar e manter funcionalidades personalizadas baseadas em código de confiança total em várias coleções de sites num farm do SharePoint Server 2013. Para saber como pode utilizar funcionalidades personalizadas legadas ao atualizar para o SharePoint 2013 e o que fazer para ajudar a garantir que funcionam de forma totalmente integrada para os seus utilizadores quando as coleções de sites são atualizadas a partir do modo de compatibilidade, consulte este artigo. Ele faz conexões com artigos adicionais que fornecem mais detalhes para os desenvolvedores.

Depois de um farm do SharePoint Server 2010 ser atualizado para o SharePoint Server 2013, todas as coleções de sites são executadas no modo de compatibilidade do SharePoint 2010. Permanecem neste modo até que cada coleção de sites seja atualizada para o modo SharePoint 2013. Desta forma, os seus utilizadores podem utilizar a interface de utilizador e a funcionalidade do SharePoint Server 2010 com as quais estão familiarizados até atualizar a coleção de sites individual. Também pode utilizar as funcionalidades personalizadas legadas que poderá ter utilizado no SharePoint Server 2010. Eventualmente, irá querer atualizar as suas coleções de sites para o modo SharePoint 2013 para tirar partido das novas funcionalidades que fornece. Quando fizer essa atualização, recursos personalizados que funcionavam no modo de compatibilidade do SharePoint 2010 podem não funcionar mais. Você precisa ter certeza de que existe uma continuidade entre modos do SharePoint com os mesmos recursos que estão sendo usados​​. Este artigo descreve como fazer isso.

Cmdlets do Microsoft PowerShell que você deve conhecer

Para os fins deste artigo, você deve estar familiarizado com os seguintes cmdlets do Microsoft PowerShell:

Nome O que isso faz? Exemplo
Add-SPSolution
Adiciona a solução ao repositório de soluções do farm.
Add-SPSolution -LiteralPath c:\contoso_solution.wsp
Install-SPSolution
Implanta uma solução que foi adicionada ao repositório de soluções do farm.
Install-SPSolution -Identity contoso_solution.wsp -GACDeployment -CompatibilityLevel 15
Uninstall-SPSolution
Retrai uma solução implantada.
Uninstall-SPSolution -Identity contoso_solution.wsp
Remove-SPSolution
Remove uma solução implantada.
Remove-SPSolution -Identity contoso_solution.wsp

Observação

Para obter mais informações sobre como utilizar o PowerShell e as permissões mínimas necessárias para executar um cmdlet do PowerShell para SharePoint, consulte Utilizar o Windows PowerShell para administrar o SharePoint 2013.

Visão geral da implantação de um pacote de soluções

Para entender as seguintes seções, você deve entender como um recurso personalizado é implantado em um farm do SharePoint 2013.

Quando você atualiza do SharePoint Server 2010 para um farm do SharePoint 2013, adicionar seus recursos personalizados é uma etapa importante.

Figura: Adicionar recursos personalizados no processo de atualização

Adicionar recursos personalizados em etapas de atualização

Você pode usar um pacote de solução para adicionar suas personalizações ao novo farm. Um pacote de solução é um pacote de distribuição que fornece o seu trabalho de desenvolvimento personalizado do SharePoint 2013 aos servidores Web ou aos servidores de aplicações no farm de servidores. Você pode usar soluções para empacotar e implantar recursos personalizados, modelos de site, modelos de web, páginas de layout, web parts, folhas de estilo em cascata e trabalhos de timer.

Para implantar um pacote de solução a um farm do SharePoint 2013, você precisa:

  1. Adicionar o pacote de solução a um farm. Utilize o cmdlet Add-SPSolution do PowerShell para carregar o pacote de soluções do SharePoint para o farm. Esta ação adiciona a solução ao arquivo de soluções do farm, localizado na base de dados de configuração do farm.

  2. Implantar o pacote de solução para o farm. Utilize o cmdlet Install-SPSolution do PowerShell para implementar o pacote de soluções do SharePoint no farm. Esta ação descompacta o pacote de solução e copia todos os ficheiros contidos com uma funcionalidade personalizada para um diretório "Funcionalidade" localizado no servidor Web front-end do farm. Uma subpasta para cada recurso personalizado é criada e inclui um arquivo Feature.xml. Este ficheiro define as propriedades base da funcionalidade e os elementos vinculados à mesma, bem como um ou mais ficheiros de manifesto de elemento (elements.xml) que definem os elementos que compõem a funcionalidade.

Observação

Para saber mais sobre como implantar um pacote de solução para um farm do SharePoint 2013, confira Instalar e gerenciar soluções para o SharePoint 2013.

O cmdlet Install-SPSolution do PowerShell também inclui um parâmetro de nível de compatibilidade para implementar o pacote de solução em localizações na pasta raiz designadas para o modo sharePoint 2010 ou coleções de sites do modo SharePoint 2013. Estas são as pastas raiz "14" e "15" (hives) e, quando implementa a solução, são adicionados aqui ficheiros como funcionalidades, ficheiros de esquema, imagens e modelos de controlo.

Figura: Pastas raiz do SharePoint 2010 e 2013

Pastas raiz do SharePoint 2010 e 2013

Também deve ter em atenção que, ao implementar um pacote de solução num farm do SharePoint 2013, alguns ficheiros são copiados para localizações específicas, independentemente do nível de compatibilidade. Para obter mais detalhes sobre para onde os ficheiros são copiados, veja Planning Deployment of Farm Solutions for SharePoint 2013 (Planear a Implementação de Soluções de Farm para o SharePoint 2013).

Os conjuntos de sites dos dois modos apontam para seu hive correspondente, de modo que eles possam usar os recursos personalizados fornecidos no pacote de solução.

Figura: Implantar recursos personalizados herdados após atualizar para o SharePoint Server 2013

Implantar recursos personalizados herdados após atualização

O recurso personalizado pode ter sido testado para funcionar corretamente em ambos os modos do SharePoint 2010 e do SharePoint 2013. Em caso afirmativo, os arquivos do assembly de recurso podem ser idênticos. Por exemplo, se a funcionalidade personalizada, Funcionalidade1, for conhecida por funcionar nos modos sharePoint 2013 e SharePoint 2010, o mesmo pacote de solução pode ser utilizado para implementar a mesma funcionalidade personalizada (Funcionalidade1) nas pastas "14" e "15".

No entanto, se o teste mostrar que o recurso personalizado herdado pode não funcionar em conjuntos de sites no modo do SharePoint 2013, você pode precisar fazer as seguintes alterações:

  • Atualizar o pacote de solução para incluir lógica condicional que ativa a funcionalidade baseada no modo de conjunto de sites do SharePoint.

  • Criar um novo e separado pacote de solução com funcionalidade atualizada para o recurso quando ele é usado por conjuntos de sites atualizados.

Mascaramento de recurso envolve o uso de um novo e separado pacote de solução para o mesmo recurso para sites e conjuntos de sites atualizados (quando um recurso tem como escopo um site ou um conjunto de sites). O mascaramento de recurso permite que os conjuntos de sites atualizados encontrem e utilizem automaticamente os assemblies de recurso personalizado corretos. Desta forma, os usuários podem facilmente usar o mesmo recurso personalizado.

Os recursos personalizados herdados em um farm do SharePoint Server 2013

Ao usar recursos personalizados herdados em um farm do SharePoint 2013, você pode se deparar com uma das três situações a seguir:

  • O recurso personalizado fornecido pelo pacote de solução atualmente funciona para conjuntos de sites no modo do SharePoint 2010. Também funciona para coleções de sites no modo SharePoint 2013.

  • O recurso personalizado fornecido pelo pacote de solução atualmente funciona para conjuntos de sites no modo do SharePoint 2010. Também funciona para coleções de sites no modo SharePoint 2013. Também deve ter em conta funcionalidades personalizadas adicionais que poderá querer adicionar de forma incremental no futuro para coleções de sites no modo SharePoint 2013.

  • O recurso personalizado fornecido pelo pacote de solução atualmente funciona para conjuntos de sites no modo do SharePoint 2010. No entanto, não funciona para coleções de sites no modo SharePoint 2013.

Cenários com suporte

Ao implantar recursos personalizados em um farm do SharePoint 2013 que foi atualizado do SharePoint Server 2010, três cenários de implantação diferentes são suportados:

   
Cenário 1
Solução herdada para o modo de compatibilidade do SharePoint 2010 e funcionalidade para manter-se a mesma quando atualizada para o SharePoint 2013.
Cenário 2
Solução legada para o modo de compatibilidade do SharePoint 2010, mas recriou a solução para adicionar incrementalmente a funcionalidade para o modo do SharePoint 2013.
Cenário 3
Solução herdada para o modo de compatibilidade do SharePoint 2010, e compilar uma nova solução para implementar novas funcionalidades para o SharePoint 2013.

Observação

Para obter detalhes sobre onde os arquivos do pacote solução são instalados no farm com base no nível de compatibilidade, consulte a postagem do blog TechNet, Planejar a implantação de soluções de farm do SharePoint 2013.

Cenário 1: Solução herdada para o modo de compatibilidade do SharePoint 2010 e espera-se que a funcionalidade se mantenha a mesma quando atualizada para o SharePoint 2013

Neste cenário, o recurso personalizado fornecido por meio do pacote de solução atualmente funciona corretamente em conjuntos de sites no modo de compatibilidade do SharePoint 2010. Além disso, espera-se que funcione quando a coleção de sites for atualizada para o modo SharePoint 2013. Por exemplo, uma Web Part personalizada foi criado para o SharePoint 2010. Foi testado para funcionar no SharePoint 2013 sem alterar o código. Sabe que pode adicioná-lo ao seu farm do SharePoint 2013 e funciona para utilizadores em coleções de sites no modo de compatibilidade do SharePoint 2010 e quando atualiza o site para o SharePoint 2013.

Como se espera que o recurso personalizado funcione em ambos os modos do SharePoint, você pode usar os mesmos assemblies de recurso personalizado. No entanto, é importante implementar o pacote de solução para ambos os modos do SharePoint, o que pode fazer com um parâmetro quando estiver a utilizar o cmdlet Install-SPSolution . O mascaramento de recurso não é usado neste cenário porque os conjuntos de sites em ambos os modos usam o mesmo código (assemblies de recursos duplicados localizados nas pastas do modo 2010 e 2013 correspondentes).

As etapas deste cenário incluem o seguinte:

  1. Criar o pacote de solução que contém o recurso personalizado.

  2. Adicionar o pacote de solução ao farm. Pode fazê-lo através do cmdlet Do PowerShell Add-SPSolution . Por exemplo:

    Add-SPSolution -LiteralPath c:\Solution.wsp

  3. Implantar o pacote de solução.

  4. Implante o pacote de solução para compatibilidade com o SharePoint 2010. Pode fazê-lo com o cmdlet Do PowerShell Install-SPSolution . Certifique-se de que define o parâmetro -CompatibilityLevel como 14. Por exemplo:

    Install-SPSolution -Identity Solution.wsp -CompatibilityLevel 14 -GAC ...

  5. Implemente o pacote de solução para compatibilidade com o SharePoint 2013. Pode fazê-lo com o cmdlet Do PowerShell Install-SPSolution . Certifique-se de que define o parâmetro -CompatibilityLevel como 15. Por exemplo:

    Install-SPSolution -Identity Solution.wsp -CompatibilityLevel 15 -GAC ...

Observação

O parâmetro -CompatibilityLevel no cmdlet Install-SPSolution do Windows PowerShell também lhe permite instalar um pacote de solução nos diretórios de raiz 14 e 15 ao mesmo tempo. Pode fazê-lo ao utilizar os valores "14,15" ou "Todos". Por exemplo: >Install-SPSolution -Identity Solution.wsp -CompatibilityLevel 14, 15 -GAC ...> para obter mais informações sobre o parâmetro CompatibilityLevel no cmdlet Install-SPSolution do Windows PowerShell, veja Install-SPSolution .

Recurso de legado personalizado funciona em ambos os modos

Observação

Quando você usa o comando Install-SPSolution para instalar os dois modos de SharePoint, use o mesmo nome e ID de solução.

Cenário 2: Solução herdada para o modo de compatibilidade do SharePoint 2010, mas foi reconstruída a solução para adicionar funcionalidades de forma incremental ao SharePoint 2013

Neste cenário, a funcionalidade personalizada funciona corretamente no SharePoint Server 2010. Quer criar um pacote de solução ao adicionar esta funcionalidade a um farm do SharePoint 2013, mas também quer certificar-se de que pode adicionar incrementalmente funcionalidades para coleções de sites no modo SharePoint 2013 que estão a utilizar este pacote de solução. Por exemplo, uma Web Part personalizada foi criado para o SharePoint 2010. Foi testado para funcionar no SharePoint 2013 sem alterar o código. No entanto, sabe que poderá querer adicionar funcionalidades adicionais aos seus utilizadores do SharePoint 2013, mas ainda assim pretende utilizar as mesmas assemblagens de funcionalidades para permitir a retrocompatibilidade.

Como se espera que o recurso personalizado funcione em ambos os modos do SharePoint, você pode usar os mesmos assemblies de recurso personalizado. Você deve instalar o pacote de solução para ambos os modos do SharePoint como fez para o cenário anterior. A principal diferença nesse cenário é que o pacote de solução deve incluir lógica que permite a funcionalidade de recurso que se baseia condicionalmente na compatibilidade do conjunto de sites.

Por exemplo, digamos que tem um método chamado Sample() implementado numa funcionalidade personalizada concebida para o SharePoint 2010. Se quiser alterar a respetiva implementação no modo SharePoint 2013, o código deve incluir lógica condicional que utilize a propriedade SPSite.CompatibilityLevel:

void Sample()
{
if (site.CompatibilityLevel == 14) { /*Existing O14 implementation*/}
else {/*New O15 implementation*/}}
}

Ao fazê-lo, a mesma assemblagem de funcionalidades serve as versões do SharePoint 2010 e do SharePoint 2013 da funcionalidade. O mascaramento de funcionalidades também não é utilizado neste cenário porque não está apenas a utilizar a mesma assemblagem de funcionalidades, mas também o mesmo pacote de solução. Os mesmos ficheiros da funcionalidade personalizada são copiados para os diretórios "14" e "15" \Template\Features. Para obter mais informações, consulte a secção "Considerações de Planeamento" da mensagem de blogue do TechNet, Planning Deployment of Farm Solutions for SharePoint 2013 (Planear a Implementação de Soluções de Farm para o SharePoint 2013).

As etapas deste cenário incluem o seguinte:

  1. Crie o pacote de solução que contém o recurso personalizado. Inclua lógica condicional que habilite a funcionalidade do recurso com base na compatibilidade do conjunto de sites.

  2. Adicione o pacote de solução ao farm. Pode fazê-lo com o cmdlet Do PowerShell Add-SPSolution . Por exemplo:

    Add-SPSolution -LiteralPath c:\Solution.wsp

  3. Implantar o pacote de solução.

  4. Implante o pacote de solução para compatibilidade com o SharePoint 2010. Pode fazê-lo com o cmdlet Do PowerShell Install-SPSolution . Certifique-se de que define o parâmetro -CompatibilityLevel como 14. Por exemplo:

    Install-SPSolution -Identity Solution.wsp -CompatibilityLevel 14 -GAC ...

  5. Instale o pacote de solução para compatibilidade com o SharePoint 2013. Pode fazê-lo com o cmdlet Do PowerShell Install-SPSolution . Certifique-se de que define o parâmetro -CompatibilityLevel como 15. Por exemplo:

    Install-SPSolution -Identity Solution.wsp -CompatibilityLevel 15 -GAC ...

Observação

O parâmetro CompatibilityLevel no cmdlet Install-SPSolution do Microsoft PowerShell também lhe permite instalar um pacote de solução nos diretórios de raiz 14 e 15 ao mesmo tempo. Pode fazê-lo ao utilizar os valores "14,15" ou "Todos". Por exemplo: >Install-SPSolution -Identity Solution.wsp -CompatibilityLevel 14, 15 -GAC ...> para obter mais informações sobre o parâmetro -CompatibilityLevel no cmdlet Install-SPSolution do Microsoft PowerShell, veja Install-SPSolution .

Recurso de legado personalizado necessita de lógica condicional

Observação

Quando você usa o comando Install-SPSolution para instalar para ambos os modos do SharePoint, use o mesmo nome e ID de solução.

Cenário 3: Solução herdada para o modo de compatibilidade do SharePoint 2010 e compilar uma nova solução para implementar novas funcionalidades para SharePoint Server 2013

Neste cenário, sabe-se que a funcionalidade personalizada funciona corretamente no SharePoint Server 2010, mas sabe-se que não funciona no SharePoint 2013. Tem de criar um pacote de solução novo e separado no qual a funcionalidade da funcionalidade personalizada foi corrigida para funcionar corretamente no SharePoint 2013. Neste cenário, você tem dois pacotes de solução diferentes, com diferentes assemblies de recurso. Este cenário utiliza o mascaramento de recurso. À medida que os utilizadores são movidos do modo de compatibilidade para o SharePoint 2013, são "mascarados" do facto de a funcionalidade personalizada que estão a utilizar ter passado de uma base de código diferente para outra.

Neste cenário, você precisa adicionar e implantar dois pacotes de solução separados que contêm dois assemblies de recursos diferentes. Ambas as versões do recurso devem ter o mesmo nome, a ID do recurso e o local do manifesto de recurso, embora os assemblies de recurso e os recursos sejam diferentes.

Requisitos de mascaramento de recurso

Requisito Mesmo ou diferente Pacote de solução – exemplo do modo de 2010 Pacote de solução – exemplo do modo de 2013
Nomes de pacote de solução
Diferente
POC14
POC15
IDs de pacote de solução
Diferente
000000-0000-0000-0000-000000000000
11111111-1111-1111-1111-111111111111
Nome do recurso
Mesmo
Feature1
Feature1
ID do recurso
Mesmo
12345
12345
Nomes de pasta XML de recurso
Mesmo
POC15\Features\Feature1.feature\
POC15\Features\Feature1.feature\
Local de manifesto de recurso
Mesmo
POC15_Feature1\Feature1.Template.xml
POC15_Feature1\Feature1.Template.xml

Figura: Pacotes de solução para o mascaramento de recursos

Pacotes de soluções para o mascaramento de recurso

As etapas deste cenário incluem o seguinte:

  1. Criar dois pacotes de soluções diferentes, com nomes diferentes. As versões da funcionalidade que está a implementar têm de ter o mesmo nome e ID de funcionalidade.

  2. Adicione o pacote de solução de compatibilidade com o SharePoint 2010 ao farm. Pode fazê-lo através do cmdlet Do PowerShell Add-SPSolution . Por exemplo:

    Add-SPSolution -LiteralPath c:\POC14.wsp

  3. Adicione o pacote de solução para compatibilidade do SharePoint 2013 ao farm. Também pode fazê-lo através do cmdlet Do PowerShell Add-SPSolution . Por exemplo:

    Add-SPSolution -LiteralPath c:\POC15.wsp

  4. Implante o pacote de solução para a compatibilidade com o SharePoint 2010. Pode fazê-lo através do cmdlet Do PowerShell Install-SPSolution . Certifique-se de que define o parâmetro -CompatibilityLevel como 14. Por exemplo:

    Install-SPSolution -Identity POC14.wsp -CompatibilityLevel 14 -GAC ...

  5. Instale o pacote de solução para compatibilidade com o SharePoint 2013. Também pode fazê-lo através do cmdlet Do PowerShell Install-SPSolution . Certifique-se de que define o parâmetro -CompatibilityLevel como 15. Por exemplo:

    Install-SPSolution -Identity POC15.wsp -CompatibilityLevel 15 -GAC ...

Mascaramento de recurso para implantar recurso personalizado

Desinstalar um pacote de solução

Você não irá mais precisar do pacote de solução herdado que você implantou para os conjuntos de site do modo de compatibilidade do SharePoint 2010, uma vez que todos os conjuntos de sites foram atualizados para o modo do SharePoint 2013. Quando isso acontece, o pacote de solução herdado pode ser cancelado e removido do seu farm do SharePoint Server 2013. Pode fazê-lo através dos cmdlets Do PowerShell Uninstall-SPSolution e Remove-SPSolution .

Importante

Recomendamos que utilize o cmdlet Do PowerShell Uninstall-SPSolution ao remover uma solução de um farm do SharePoint Server 2013. Cancelar uma solução por meio da Administração Central vai cancelar a solução de ambas as pastas raiz do SharePoint 2010 e do SharePoint 2013. É especialmente importante notar isso quando você está usando o mascaramento de recurso para implantar um recurso personalizado.

Cancelar e remover o pacote de solução:

  1. Retrair o pacote de solução do modo sharePoint 2010 do farm: pode fazê-lo através do cmdlet Uninstall-SPSolution do Windows PowerShell. Por exemplo:

    Uninstall-SPSolution -Identity POC14.wsp -CompatibilityLevel 14

    Importante

    Certifique-se de que utiliza o parâmetro CompatibilityLevel para " 14 " para retrair o pacote de solução apenas para o modo de compatibilidade 2010. Por exemplo: Uninstall-SPSolution POC14.wsp -CompatibilityLevel 14

  2. Remover o pacote de soluções do arquivo de soluções do farm: pode fazê-lo através do cmdlet Remove-SPSolution do PowerShell. Por exemplo:

    Remove-SPSolution -Identity POC14.wsp

Cancelar e remover o pacote de soluções

Outras considerações

Esta seção inclui informações sobre considerações adicionais, incluindo o seguinte:

  • Implantar um recurso em conjuntos de sites usando o modo misto

  • Considerações da página mestra

Implantar um recurso em conjuntos de sites usando o modo misto

Se o seu recurso personalizado estiver no escopo de farm ou aplicativo Web, você pode implantá-lo, mesmo que nem todos os conjuntos de sites no farm ou aplicativos web tenham sido atualizados para o modo de compatibilidade do SharePoint 2013.

Para funcionalidades no âmbito de aplicações Web, se a coleção de sites de raiz não tiver sido atualizada, não poderá ativar a funcionalidade com o cmdlet Install-SPSolution do PowerShell. Em vez disso, tem de utilizar o site de Administração Central do SharePoint para ativar a funcionalidade.

Considerações da página mestra

No que diz respeito às personalizações de imagem corporativa, as páginas mestras personalizadas são repostas por predefinição para seattle.master após uma atualização da coleção de sites no SharePoint 2013. Se estiver a utilizar o cenário de máscara de funcionalidades, terá de repor as páginas mestras personalizadas que criou para coleções de sites do SharePoint 2013. Para obter detalhes sobre como fazê-lo, consulte o artigo da MSDN Utilizar a atualização de funcionalidades para aplicar novas páginas mestras do SharePoint Server 2013 ao atualizar a partir do SharePoint 2010.

Observação

Para saber mais sobre as considerações de marca que você precisa fazer ao atualizar os conjuntos de sites no SharePoint 2013, consulte Problemas de identidade visual que podem ocorrer durante a atualização para o SharePoint 2013.

Confira também

Outros recursos

Criar um plano para personalizações atuais durante a atualização para o SharePoint 2013

Pacote de soluções do SharePoint 2013 e SharePoint no Microsoft 365 para imagem corporativa e aprovisionamento de sites

Problemas de identidade visual que podem ocorrer durante a atualização para o SharePoint 2013