Implantar pacotes de solução (SharePoint Server 2010)

 

Aplica-se a: SharePoint Server 2010

Tópico modificado em: 2016-11-30

Este artigo descreve pacotes de solução e a função que eles exercem na implantação de personalizações criadas e desenvolvidas no Microsoft SharePoint Server 2010. Ele inclui procedimentos para importação e implantação de pacotes de solução e um exemplo de criação e implantação de um pacote de solução usando o Microsoft Visual Studio 2010.

Neste artigo:

  • O que é um pacote de solução?

  • Implantação de elementos de site usando pacotes de solução

  • Criando e implantando um pacote de solução de Web Part personalizado usando o Visual Studio 2010

O que é um pacote de solução?

Um pacote de solução é um pacote de distribuição que entrega o trabalho de desenvolvimento do SharePoint Server 2010 para servidores Web ou servidores de aplicativos em seu farm de servidores. Use soluções para empacotar e implantar recursos, definições de site, modelos, páginas de layout, Web Parts, folhas de estilos em cascata e assemblies personalizados.

Este artigo não discute a implantação de soluções de área restrita. É possível implantar uma solução do Microsoft SharePoint Server 2010 diretamente no farm do SharePoint Server ou implantar a solução em uma área restrita. Uma área restrita é um ambiente de execução restrito que permite aos programas acessar somente determinados recursos e impede que os problemas que ocorrem nessa área afetem o restante do ambiente de servidor. Para obter mais informações, consulte Visão geral de soluções de área restrita (SharePoint Server 2010).

Um pacote de solução é um arquivo CAB com uma extensão de nome de arquivo .wsp e um arquivo de manifesto. É recomendável que você use o Visual Studio 2010 Tools for SharePoint 2010 para desenvolver e criar pacotes de soluções do SharePoint. Também é possível criar pacotes de soluções manualmente usando ferramentas como Makecab.exe e SharePoint Packman.

Os componentes que podem ser empacotados em uma solução incluem:

  • Assemblies do .NET Framework, normalmente assemblies de Web Part e assemblies de receptor de evento.

  • Arquivos de implantação, como arquivos de recursos, páginas ou outros arquivos auxiliares.

  • Recursos que permitem ativar e desativar código em um site e fornecem funcionalidade que inclui elementos como, por exemplo, listas, bibliotecas, campos e tipos de conteúdo personalizados.

  • Novos modelos e definições de site.

  • Configurações que devem ser executadas no nível do servidor Web — por exemplo, implantação de personalizações em arquivos Web.config para o registro de Web Parts. Também é possível modificar essas configurações com um Recurso que seja distribuído com um Recurso.

  • Conteúdo como páginas da Web e imagens que são chamadas por páginas da Web. Se você tiver de implantar conteúdo da Web em um ambiente desconectado, use um pacote de implantação de conteúdo.

Implantação de elementos de site usando pacotes de soluções

Nesta seção:

  • Quando usar pacotes de solução

  • Implantando soluções de farm

  • Importando um pacote de solução

  • Implantando um pacote de solução

  • Sobre a criação de um pacote de solução

Quando usar pacotes de solução

Uma prática recomendada para a implantação de personalizações é usar pacotes de soluções como parte de um processo de gerenciamento de ciclo de vida de aplicativo consistente, seguro e simples. Os pacotes de soluções simplificam a alteração dos Recursos e da funcionalidade de sites após sua criação.

É possível usar pacotes de soluções para implantar novas soluções e atualizar soluções existentes no farm. Você pode empacotar todas as entidades do SharePoint Server como um único arquivo, adicionar o arquivo ao repositório de soluções e implantá-lo nos servidores Web front-end do farm. Use pacotes de soluções para sincronizar um servidor Web front-end de forma que seu estado seja consistente com o estado de outros servidores Web do farm.

É possível usar pacotes de soluções para implantar personalizações de elementos de site criados de um farm de integração para um farm de criação, piloto ou de produção. No SharePoint Server, os usuários podem salvar um site personalizado como um modelo. Isso cria um pacote de solução com uma extensão de nome de arquivo que pode ser implantada em outro farm.

Você pode usar pacotes de soluções para implantar personalizações entre esses ambientes:

  • De estações de trabalho do desenvolvedor para um farm de integração ou um sistema de gerenciamento de configuração de software

  • De um farm de integração e estações de trabalho clientes de criação para farms piloto ou de produção

Implantando soluções de farm

As soluções de farm são implantadas localmente ou usando um serviço de timer. As implantações locais e baseadas em timer podem ser disparadas usando instruções de linha de comando ou programaticamente, usando o modelo de objeto.

Implantação local

Em uma implantação local, os arquivos de solução são implantados somente no computador em que a operação de implantação foi iniciada. A solução não será marcada como "implantada" no banco de dados de configuração enquanto os arquivos da solução não forem implantados em todos os servidores aplicáveis do farm de servidores. Em seguida, os recursos da solução serão instalados, e o esquema e os arquivos de definição serão confirmados no repositório de configuração.

Implantações do Serviço de Timer

Em implantações que usam o serviço de timer, a implantação criará um trabalho de timer. Esse trabalho de timer é escolhido pelo serviço de timer em cada servidor Web do farm de servidores. Inicialmente, o manifesto e os manifestos de recurso são analisados para localizar arquivos de assembly e de _layout, que são copiados nos locais apropriados. Todos os outros arquivos contidos em um diretório de recursos são copiados no diretório de recursos. Após a cópia dos arquivos da solução nos computadores de destino, uma redefinição de configuração será agendada para todos os servidores Web front-end; a redefinição então implantará os arquivos e reiniciará o IIS (Serviços de Informações da Internet da Microsoft). Os recursos da solução são registrados, e o esquema e os arquivos de definição são confirmados no repositório de configuração.

Para obter mais informações sobre o repositório, a implantação e a sincronização de soluções, consulte o tópico sobre como implantar uma solução (https://go.microsoft.com/fwlink/?linkid=186995&clcid=0x416) no Microsoft SharePoint 2010 Software Development Kit (SDK)

Adicionando um pacote de solução

Para poder implantar um pacote de solução, você deve adicioná-lo ao banco de dados de soluções de um farm do SharePoint Server.

Importante

Você precisará ser membro do grupo Administradores em qualquer computador em que o Windows PowerShell for executado.

Para implantar um pacote de solução usando o Windows PowerShell

  1. Verifique se você atende a estes requisitos mínimos: Consulte Add-SPShellAdmin..

  2. No menu Iniciar, clique em Todos os Programas.

  3. Clique em Produtos do Microsoft SharePoint 2010.

  4. Clique em Shell de Gerenciamento do SharePoint 2010.

  5. No prompt de comando do Windows PowerShell, digite o seguinte comando:

    Add-SPSolution -LiteralPath <SolutionPath>
    

A solução é adicionada ao repositório de soluções do farm. Para usá-la, siga o procedimento na próxima seção deste artigo. Para obter mais informações, consulte Add-SPSolution.

Implantando um pacote de solução

É possível implantar soluções importadas usando o site da Administração Central ou o Windows PowerShell. Após adicionar o repositório de soluções por meio do cmdlet Windows PowerShellAdd-SPSolution, ele precisará ser implantado em um site para poder ser acessado.

Observação

Não é possível adicionar uma solução ao repositório de soluções usando a página Gerenciamento de Soluções, na Administração Central.

O procedimento a seguir mostra como implantar uma solução importada em um site do farm, usando o site da Administração Central ou o Windows PowerShell.

Para implantar uma solução usando a Administração Central

  1. Na home page da Administração Central, clique em Configurações do Sistema.

  2. Na seção Gerenciamento de Farm, clique em Gerenciar soluções de farm.

  3. Na página Gerenciamento de Soluções, clique na solução que deseja implantar.

  4. Na página Propriedades da Solução, clique em Implantar Solução.

  5. Na página Implantar Solução, na seção Implantar Quando, selecione uma das seguintes opções:

    • Agora

    • Em um horário específico. Se você selecionar essa opção, especifique um horário usando as caixas de data e hora. É recomendável selecionar um horário em que a carga nos servidores de destino seja baixa.

  6. Na seção Implantar em?, na lista Um aplicativo Web específico, clique em Todos os aplicativos Web ou selecione um determinado aplicativo Web.

  7. Clique em OK.

Para implantar um pacote de solução em um único aplicativo Web usando o Windows PowerShell

  1. Verifique se você atende aos seguintes requisitos mínimos: Consulte Add-SPShellAdmin.

  2. No menu Iniciar, clique em Todos os Programas.

  3. Clique em Produtos do Microsoft SharePoint 2010.

  4. Clique em Shell de Gerenciamento do SharePoint 2010.

  5. No prompt de comando do Windows PowerShell, digite o seguinte comando:

    Install-SPSolution -Identity <SolutionName> -WebApplication <URLname>
    

    Em que:

    • <NomeDaSolução> é o nome da solução.

    • <NomeDaURL> é a URL do aplicativo Web em que você deseja implantar a solução importada.

    Por padrão, a solução é implantada imediatamente. Você também pode agendar a implantação usando o parâmetro time. Para obter mais informações, consulte Install-SPSolution.

Para implantar um pacote de solução em todos os aplicativos Web usando o Windows PowerShell

  1. Verifique se você atende aos seguintes requisitos mínimos: Consulte Add-SPShellAdmin.

  2. No menu Iniciar, clique em Todos os Programas.

  3. Clique em Produtos do Microsoft SharePoint 2010.

  4. Clique em Shell de Gerenciamento do SharePoint 2010.

  5. No prompt de comando do Windows PowerShell, digite o seguinte comando:

    Install-SPSolution -Identity <SolutionName> -AllWebApplications -time <TimeToDeploy> -GACDeployment -CASPolicies
    

    Em que:

    • GACDeployment é o parâmetro que habilita o SharePoint Server 2010 a implantar os assemblies no cache de assembly global.

    • CASPolicies habilita a criação de um arquivo de diretiva personalizado CAS (segurança de acesso do código) e a ativação dele no arquivo Web.config do conjunto de sites pretendido.

    Por padrão, a solução é implantada imediatamente, mas você também pode agendá-la usando o parâmetro time.

Sobre a criação de um pacote de solução

O SharePoint Server 2010 não inclui uma ferramenta para a criação de pacotes de soluções. Esta seção descreve as formas de criar pacotes de soluções que contêm elementos de site desenvolvidos e artefatos.

Visual Studio 2010

É possível usar o Visual Studio 2010 para agrupar elementos relacionados do SharePoint em um Recurso e, em seguida, reunir vários Recursos, definições de site, assemblies e outros arquivos em um único pacote (arquivo .wsp) a ser implantado em servidores que estejam executando o SharePoint Server 2010. Você pode usar o Visual Studio 2010 para depurar e testar o .wsp no servidor que executa o SharePoint Server 2010 no computador de desenvolvimento. Também pode personalizar as etapas de implantação no computador de desenvolvimento.

Os desenvolvedores podem criar soluções do SharePoint no Visual Studio 2010 e produzir arquivos .wsp usando o processo de compilação automatizada. O código-fonte do projeto Visual Studio SharePoint usado para gerar o arquivo .wsp também pode ser adicionado ao sistema de controle de código-fonte usando a integração do Visual Studio 2010. O Visual Studio 2010 pode importar arquivos .wsp e criar projetos para estendê-los ainda mais e para criar novos arquivos .wsp. A principal fonte de arquivos .wsp importada para o Visual Studio 2010 são os modelos salvos de sites, usando o comando Salvar como Modelo nos sites do SharePoint Server 2010. Esses modelos podem ser usados para salvar todas as personalizações de site em uma solução do SharePoint.

Para obter mais informações, consulte o documento sobre desenvolvimento do SharePoint no Visual Studio (https://go.microsoft.com/fwlink/?linkid=187000&clcid=0x416).

Makecab

Os pacotes de soluções podem ser criados manualmente usando ferramentas como Makecab.exe. A ferramenta Makecab.exe utiliza um ponteiro para um arquivo .ddf, que descreve a estrutura do arquivo CAB. O formato de um arquivo .ddf é similar ao de um arquivo .inf — ou seja, você declara um cabeçalho padrão e enumera, um arquivo por linha, o conjunto de arquivos em que estão localizados no disco e onde eles devem ser colocados no arquivo CAB.

A ferramenta Makecab.exe está disponível para download no Software Development Kit do Microsoft Cabinet (https://go.microsoft.com/fwlink/?linkid=107292&clcid=0x416).

SharePoint PackMan

SharePoint PackMan é uma ferramenta que simplifica o processo de empacotamento e gerenciamento de soluções do SharePoint. Arraste e solte seus arquivos na ferramenta para que ela crie um arquivo .ddf e um arquivo manifest.xml e execute Makecab.exe em um prompt de comando. A ferramenta SharePoint PackMan também simplifica a adição, implantação, cancelamento e exclusão de uma ou mais soluções de farm, aplicativos Web ou conjuntos de sites.

A ferramenta SharePoint PackMan está disponível para download no site CodeBox: https://codebox/sppackman (https://go.microsoft.com/fwlink/?linkid=107292&clcid=0x416).

Sobre a personalização de pacotes de soluções

Se você precisar fazer qualquer uma das personalizações a seguir em soluções do SharePoint Server 2010, convém usar o Visual Studio 2010 para personalizar pacotes de soluções. Também é possível fazer essas personalizações criando manualmente pacotes de soluções do SharePoint.

  • Implantar assemblies do .NET Framework na pasta particular do aplicativo, e não no cache de assembly global.

  • Adicionar permissões de segurança de acesso do código à solução que deve ser aplicada durante a implantação.

  • Usar nomes diferentes do padrão nas pastas de recursos.

  • Localizar a solução.

  • Associar manipuladores de eventos de recursos a determinados tipos de solução do SharePoint Foundation 2010; por exemplo, soluções de Web Part.

  • Adicionar recursos (arquivos XML, imagens, arquivos .dll e assemblies) ao pacote de solução.

Criar manualmente um arquivo de solução

Na maioria dos cenários de desenvolvimento do SharePoint Server 2010, convém usar o Visual Studio 2010 Tools for SharePoint 2010 para desenvolver e criar pacotes de soluções do SharePoint. No Visual Studio 2010, o processo de implantação copia o arquivo .wsp no servidor que executa o SharePoint Server 2010, instala a solução e ativa os Recursos.

Também é possível criar manualmente um arquivo de solução. A seguir, as etapas básicas para a criação de um arquivo de solução:

  1. Reúna todos os arquivos de solução individuais em uma pasta. Não há diretrizes concretas sobre como você deve fazer isso, mas uma prática recomendada é separar os tipos diferentes de arquivos de solução em suas próprias subpastas.

  2. Crie um arquivo manifest.xml que liste os componentes da solução.

  3. Crie um arquivo .ddf que defina a estrutura do arquivo de solução. Esse arquivo contém a lista de arquivos de solução individuais que determinam o arquivo .wsp de saída.

  4. Execute Makecab.exe com o arquivo .ddf como entrada e o arquivo .wsp como saída.

Sobre o arquivo de manifesto de solução

O manifesto da solução (sempre chamado de manifest.xml) é armazenado na raiz de um arquivo de solução. Esse arquivo define a lista de Recursos, definições de site, arquivos de recurso, arquivos de Web Parts e assemblies a serem processados. Ele não define a estrutura do arquivo — se os arquivos forem incluídos em uma solução, mas não listados no arquivo manifest.xml, eles não serão processados.

Veja a seguir um exemplo de uma estrutura de um arquivo manifest.xml, mostrado em XML.

<?xml version="1.0" encoding="utf-8" ?>

<Solution xmlns="https://schemas.microsoft.com/sharepoint/"

SolutionId="{79d1a62e-3627-11db-963e-00e08161165f}"

ResetWebServer="TRUE">

    <Assemblies>

        <Assembly DeploymentTarget="GlobalAssemblyCache"

Location="Example.Sharepoint.Webparts\

Example.SharePoint.WebParts.dll">

            <SafeControls>

                <SafeControl Assembly="Example.Sharepoint.Webparts,

Version=1.0.0.0, Culture=Neutral, PublicKeyToken=63cce650e8605f5d"

Namespace="Example.Sharepoint.Webparts" TypeName="*"/>

            </SafeControls>

        </Assembly>

        <Assembly DeploymentTarget="GlobalAssemblyCache"

Location="Example.Sharepoint.Timer/Example.Sharepoint.Timer.dll"/>

    </Assemblies>

    <FeatureManifests>

        <FeatureManifest Location="Example.Sharepoint.Timer\Feature.xml"/>

        <FeatureManifest Location="Example.CustomType\Feature.xml"/>

        <FeatureManifest Location="Example.ExampleLibrary\Feature.xml"/>

        <FeatureManifest Location="Example.Columns\Feature.xml"/>

        <FeatureManifest Location="Example.Workflow.ProcessExample\Feature.xml"/>

        <FeatureManifest Location="Example.Workflow.ProvisionExample\Feature.xml"/>

    </FeatureManifests>

    <SiteDefinitionManifests>

        <SiteDefinitionManifest Location="EXAMPLE">

            <WebTempFile Location="1033\XML\WEBTEMPExample.XML"/>

        </SiteDefinitionManifest>

    </SiteDefinitionManifests>

</Solution>

Além disso, você pode adicionar um elemento DwpFiles para especificar arquivos .webpart ou .dwp, ou um elemento ResourceFiles para especificar arquivos de recurso, definições de site, recursos de aplicativo e diretivas de segurança de acesso do código.

Opcionalmente, faça anotações em seus arquivos Feature.xml usando marcas <ElementFile>.

Se a sua solução contiver Recursos, na marca <ElementManifests> do arquivo Feature.xml, adicione <ElementFile Location="..."/> para todos os arquivos extras do seu recurso; por exemplo, páginas ASP.NET (por exemplo, allitems.aspx) ou páginas mestras e assim por diante.

Para obter mais informações sobre os arquivos de manifesto de solução que definem as partes de uma solução, consulte o Esquema de Solução (https://go.microsoft.com/fwlink/?linkid=183466&clcid=0x416).

Criando e implantando um pacote de solução de Web Parts personalizado usando o Visual Studio 2010

Para obter um exemplo passo a passo e que mostre como usar o Visual Studio 2010 para criar, personalizar, depurar e implantar uma definição de lista do SharePoint para controlar tarefas de projeto, consulte o artigo com o roteiro passo a passo para a implantação de uma definição de lista de tarefas de projeto (https://go.microsoft.com/fwlink/?linkid=189612&clcid=0x416) na Biblioteca MSDN.

Este roteiro passo a passo ilustra as seguintes tarefas:

  • Criação de um projeto de definição de lista do SharePoint que contém tarefas.

  • Adição da definição de lista a um Recurso do SharePoint.

  • Adição de um receptor de evento à lista.

  • Criação e personalização de um pacote do SharePoint para implantar seu Recurso.

  • Criação e implantação da solução do SharePoint.

Quando você cria o projeto de exemplo nesse roteiro passo a passo, o Visual Studio 2010 implanta automaticamente a solução no servidor que executa o SharePoint Server 2010 no computador de desenvolvimento para teste e depuração. Também é possível criar um arquivo de pacote de solução que possa ser adicionado e implantado em outro computador. Para obter mais informações, consulte Como: implantar uma solução do SharePoint (https://go.microsoft.com/fwlink/?linkid=187004&clcid=0x416). É possível usar o cmdlet Add-SPSolution do Windows PowerShell para importar a solução para outro computador.

É possível usar a página Gerenciamento de Soluções na Administração Central para implantar o pacote de solução. Como alternativa, você pode usar o cmdlet Install-SPSolution do Windows PowerShell para implantar esse pacote.

No roteiro passo a passo, o escopo do recurso de lista de projetos é a Web. Para ativar o Recurso, no site, expanda o menu Ações de Site e clique em Definições do Site. Em Ações de Site, clique em Gerenciar recursos do site. Na página Recursos, ao lado do nome do recurso, clique em Ativar.