Share via


Implantando personalizações de elementos em sites desenvolvidos

Atualizado em: 2008-01-17

Neste artigo:

  • Implantando elementos de site desenvolvidos usando pacotes de solução

  • Implantando elementos de site desenvolvidos usando recursos

Este artigo fornece orientação sobre a implantação de personalizações de elementos de site desenvolvidos usando o Microsoft Office SharePoint Server 2007, incluindo procedimentos de implantação, considerações gerais e práticas recomendadas relacionados à implantação do código personalizado.

Elementos de site desenvolvidos são aplicativos e arquivos que fornecem funcionalidade a um site — por exemplo, um fluxo de trabalho que implementa um processo corporativo ou um modelo de site que permite que os usuários criem sites de um determinado design. Os elementos de site desenvolvidos são implantados nos servidores Web do farm ou, em alguns casos, em servidores de aplicativos dedicados na camada intermediária do farm.

As seções neste artigo descrevem como trabalhar com os diferentes métodos de implantação de elementos de site desenvolvidos no Office SharePoint Server 2007, incluindo procedimentos que descrevem como importar, exportar e criar pacotes de soluções e recursos.

Este artigo não aborda a implantação de elementos de site criados, como páginas da Web, folhas de estilo em cascata e páginas de layout. Para obter informações sobre a implantação de elementos de site criados, consulte Implantando personalizações de elementos de site criados. Para obter mais informações sobre as diferenças entre elementos de site criados e elementos de site desenvolvidos, consulte Análise de elementos do site.

Antes de ler este artigo, você deve se familiarizar com os conceitos relacionados ao projeto e à criação de sites. Para obter mais informações, consulte Sobre o projeto e a criação de sites.

Os procedimentos neste artigo são baseados nas topologias descritas no artigo Cenários de personalização e podem não estar totalmente conforme o seu ambiente.

Estes procedimentos podem requerer um esforço cooperativo entre várias funções diferentes. Além disso, este artigo supõe que trabalhos de implantação agendados serão usados para migrar conteúdo entre determinadas camadas da topologia.

Dica

Para eliminar possíveis problemas de sincronização, os elementos de site desenvolvidos geralmente devem ser implantados antes dos elementos de site criados. Para obter mais informações sobre elementos de site criados e desenvolvidos, consulte Análise de elementos do site. Observe também que quaisquer pacotes de idiomas em uso no servidor de origem também devem ser instalados no servidor de destino, ou a implantação do conteúdo falhará.

A seguinte tabela resume os métodos de implantação descritos neste artigo.

Método Observações

Pacotes de solução

Pacotes de solução são pacotes de distribuição que oferecem seu trabalho de desenvolvimento personalizado do Office SharePoint Server 2007 e do Windows SharePoint Services 3.0 aos servidores Web ou de aplicativos no seu farm de servidores.

Usando pacotes de solução, você pode:

  • Implantar elementos de site desenvolvidos em ambientes conectados e desconectados.

  • Implantar artefatos e elementos de site desenvolvidos no mesmo pacote.

Não é possível usar pacotes de solução para implantar elementos de site criados que não sejam artefatos.

Recursos

Recursos são conjuntos empacotados de arquivos XML implantados em servidores Web. Os recursos podem ser agrupados em soluções e definições de sites, ou individualmente ativados em sites do Office SharePoint Server.

Usando recursos, você pode:

  • Implantar elementos de site desenvolvidos em ambientes conectados e desconectados.

  • Ativar e desativar as personalizações no site da Administração Central, ou usando o ferramenta de linha de comando Stsadm.

  • Controlar o escopo da implantação.

  • Incluir recursos em um pacote de solução junto com outros recursos, elementos de site desenvolvidos e artefatos.

Você não pode usar recursos para implantar elementos de site criados.

As seções a seguir descrevem detalhadamente cada método de implantação listado.

Implantando elementos de site desenvolvidos usando pacotes de solução

Nesta seção:

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

  • Quando usar pacotes de solução

  • Implantar uma solução usando a Administração Central

  • Criar um pacote de solução

  • Importar um pacote de solução usando a ferramenta de linha de comando Stsadm

  • Implantar um pacote de solução usando a ferramenta de linha de comando Stsadm

O que é um pacote de solução?

Um pacote de solução é um pacote de distribuição que fornece o seu trabalho de desenvolvimento personalizado do Office SharePoint Server 2007 e do Windows SharePoint Services 3.0 aos servidores Web ou servidores de aplicativos no farm de servidores. Um pacote de solução é um arquivo CAB com uma extensão de nome de arquivo .wsp e um arquivo de manifesto. Os pacotes de solução podem ser criados manualmente usando ferramentas como Makecab.exe ou podem ser criados com o Solution Generator, um aplicativo autônomo incluído em Ferramentas do Windows SharePoint Services 3.0: extensões do Visual Studio 2005 (https://go.microsoft.com/fwlink/?linkid=107267\&clcid=0x416).

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

  • Assemblies do .NET Framework que envolvem o código que direciona a solução.

  • Arquivos de implantação, como arquivos de recursos, imagens ou outros arquivos auxiliares.

  • Novos modelos e definições para sites, listas, bibliotecas, campos, tipos de conteúdo e mais. Essas definições estão na forma de arquivos XML baseados em CAML.

  • Recursos, que permitem a você ativar e desativar código em um site.

  • Configurações que devem ser executadas no servidor Web — por exemplo, os arquivos Web.config para o registro de Web Parts.

Para obter mais informações, consulte Componentes do pacote de soluções.

Quando usar pacotes de solução

Você pode usar pacotes de solução para entregar elementos de site desenvolvidos e artefatos (descritos em Implantando personalizações de elementos de site criados). Você também pode usar pacotes de solução para implantar elementos de site desenvolvidos em ambientes desconectados, ou para salvar elementos de site desenvolvidos em um sistema de gerenciamento de configuração de software.

Você pode usar pacotes de solução para implantar elementos de site desenvolvidos se um ou mais dos seguintes fatores se aplicarem:

  • **Ambientes desconectados  ** Se os farms forem desconectados, crie um pacote de solução para transferência assíncrona ao o farm de integração.

  • Ambientes de gerenciamento de configuração de software Você pode consolidar o trabalho de desenvolvimento em um pacote de solução para entrega em um sistema de gerenciamento de configuração de software.

  • Inclusão de recursos e outros elementos de site desenvolvidos Você pode incluir recursos com outras personalizações em um pacote de solução. Se algumas das suas personalizações forem empacotadas como recursos e outras não, você poderá usar pacotes de solução como o meio de implantação padrão.

  • Entrega tandem de artefatos e elementos de site desenvolvidos Você poderá usar um pacote de solução se desejar implantar artefatos e elementos de site desenvolvidos em um único pacote de implantação.

  • Implantações com script Você poderá usar pacotes de solução se desejar elaborar um script para automatizar o processo de implantação de elementos de site desenvolvidos.

Como mostrado nos diagramas de implantação no artigo Cenários de personalização, você pode usar pacotes de solução para implantar personalizações de elementos de site desenvolvidos entre estações de trabalho do desenvolvedor e um farm de integração ou um sistema de gerenciamento de configuração do software, e entre um farm de integração e estações de trabalho cliente de criação e farms piloto ou de produção.

Implantar uma solução usando a Administração Central

Você pode implantar soluções importadas do site da Administração Central. Quando uma solução tiver sido importada para o banco de dados da solução com a operação -Addsolution de Stsadm como descrito na seção Importar um pacote de solução usando a ferramenta de linha de comando Stsadm posteriormente neste artigo, ela deverá ser implantada em um site antes de ser acessada.

Dica

Não é possível importar uma solução usando a página Gerenciamento de Soluções na Administração Central.

O seguinte procedimento mostra como implantar uma solução importada em um site no farm.

Implantar uma solução no site da Administração Central

  1. Na barra de links superior do site da Administração Central, clique em Operações.

  2. Na página Operações, na seção Configuração Global, clique em Gerenciamento de soluções.

  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. Recomenda-se 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 aplicativo Web específico.

  7. Clique em OK.

Criar um pacote de solução

Esta seção descreve métodos de criação de pacotes de solução que contenham elementos de site desenvolvidos e artefatos. Há vários métodos diferentes para criar um pacote de solução. A tabela a seguir resume os métodos descritos nesta seção.

Método Descrição

Manual

Você pode criar manualmente um pacote de solução usando a ferramenta Makecab.exe. Como o Office SharePoint Server 2007 não inclui uma ferramenta para criar pacotes de solução, esse é o método padrão.

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 Solution Generator

O SharePoint Solution Generator é um aplicativo autônomo que pode converter determinados tipos de sites do Office SharePoint Server 2007 ou do Windows SharePoint Services 3.0 em um projeto de definição de sites do Visual Studio 2005. Se você estiver usando o Visual Studio 2005 para personalização de elementos do site, esse método pode ser útil.

O SharePoint Solution Generator está disponível para download em Ferramentas do Windows SharePoint Services 3.0: extensões do Visual Studio 2005 (https://go.microsoft.com/fwlink/?linkid=107267&clcid=0x416).

WSPBuilder

O WSPBuilder é uma ferramenta de linha de comando de código aberto que pode ser usada para automatizar o processo de criação de pacotes de solução. Esse método poderá ser útil se você criar pacotes de solução regularmente e se não houver restrições quanto ao uso de ferramentas de código aberto no seu ambiente.

A ferramenta WSPBuilder está disponível para download em Codeplex (https://go.microsoft.com/fwlink/?linkid=106471&clcid=0x416).

Criar manualmente um pacote de solução

Os desenvolvedores de soluções do Office SharePoint Server 2007 com frequência criarão pacotes de solução do SharePoint manualmente quando houver necessidade de realizar alguma das seguintes tarefas:

  • 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 Windows SharePoint Services 3.0, como soluções de Web Part.

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

Para criar manualmente um arquivo de solução, execute as seguintes etapas básicas:

  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 do Windows SharePoint Services 3.0. 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.

As etapas básicas anteriores são descritas em detalhes no procedimento a seguir.

Dica

Para realizar este procedimento, você precisará da ferramenta Makecab.exe, que está disponível para download no Software Development Kit do Microsoft Cabinet (https://go.microsoft.com/fwlink/?linkid=107292&clcid=0x416).

Criar manualmente um pacote de solução usando Makecab.exe

  1. Crie um arquivo manifest.xml para a 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, as definições do site, os arquivos de recurso, os arquivos de Web Part e os 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.

  2. Opcionalmente, anote seus arquivos Feature.xml com marcas <ElementFile>.

    Na marca <ElementManifests> no arquivo Feature.xml, adicione <ElementFile Location="..."/> para todos os arquivos extras no recurso, como páginas ASPX (Extensão Active Server Page) (por exemplo, todositens.aspx) ou páginas mestras etc e assim por diante.

    Dica

    Esta etapa será obrigatória somente se a sua solução contiver recursos.

  3. Crie seu pacote de solução (arquivo .WSP).

    Como o arquivo de solução é essencialmente um arquivo CAB, use a ferramenta Makecab.exe para criar o pacote de solução. A ferramenta Makecab.exe leva um ponteiro para um arquivo .ddf, que descreve a estrutura do arquivo CAB. O formato de um arquivo .ddf é similar ao de um .inf — ou seja, você declara um cabeçalho padrão e depois enumera, um arquivo por linha, o conjunto de arquivos por sua localização no disco, separados por onde eles devem se localizar no arquivo CAB. Por exemplo:

    ; .OPTION EXPLICIT    

    ; Generate errors

    .Set CabinetNameTemplate=MySolutionFile.wsp

         .set DiskDirectoryTemplate=CDROM

    ; All cabinets go in a single directory

    .Set CompressionType=MSZIP

    ;** All files are compressed in cabinet files

    .Set UniqueFiles="ON"

    .Set Cabinet=on

    .Set DiskDirectory1=Package build\manifest.xml manifest.xml build\

    MySolutionFile\Feature.xml MySolutionFile\Feature.xml ...

Passo a passo: gerando e implantando um pacote de solução de Web Part personalizada

Esta seção fornece um exemplo de como criar e implantar um pacote de solução que contém uma Web Part personalizada. Este passo a passo requer o uso do Visual Studio 2005 e da ferramenta Makecab.exe.

O Office SharePoint Server 2007 oferece aos desenvolvedores a opção de executar código personalizado quando um recurso é instalado, ativado, desativado ou desinstalado. Um exemplo é uma Web Part dependente de uma lista de tarefas específica. Quando o recurso Web Part é ativado, o código personalizado pode verificar se essa lista de tarefas faz parte das listas no site. Caso não faça, o código criará a lista e depois a removerá quando o recurso for desativado. O código personalizado é incluído em um assembly do .NET Framework conhecido como Assembly Receptor de Recurso.

Este passo a passo supõe que você já criou um projeto de Web Part. Quando o recurso Web Part é instalado, ativado, desativado ou desinstalado, o Office SharePoint Server gera eventos assíncronos. Você pode lidar com esses eventos em um assembly personalizado do .NET Framework criando uma classe do .NET Framework que seja herdada da classe abstrata Microsoft.SharePoint.SPFeatureReceiver.

Passo a passo: gerando e implantando um pacote de solução de Web Part personalizada

  1. Crie a seguinte classe do .NET em C#:

    using System;
    using System.Diagnostics;
    using System.Collections.Generic;
    using System.Text;
    using Microsoft.SharePoint;
    
    namespace MSDN.Samples
    {
        public class MSDNTaskListEventHandler: SPFeatureReceiver
        {
            public override void 
    FeatureActivated(SPFeatureReceiverProperties properties)
            {
                SPSite sitecollection = 
    (SPSite)properties.Feature.Parent;
                SPWeb web = sitecollection.RootWeb;
                try
                {
                    // -- Check if list exists.
                    SPList list = web.Lists["MSDN Tasks"]; 
                }
                catch 
                {
                    // -- If not, create the list.
                    web.Lists.Add("MSDN Tasks", "A custom list", SPListTemplateType.Tasks);
                }
            }
    
            public override void 
    FeatureDeactivating(SPFeatureReceiverProperties properties)
            {
                SPSite sitecollection = (SPSite)properties.Feature.Parent;
                SPWeb web = sitecollection.RootWeb;
                try
                {
                    // -- Check if list is there, and if so, delete it.
                    SPList list = web.Lists["MSDN Tasks"];
                    web.Lists.Delete(list.ID);
                }
                catch (Exception ex)
                {
                }
            }
    
            public override void 
    FeatureInstalled(SPFeatureReceiverProperties properties)
            {
            }
    
            public override void 
    FeatureUninstalling(SPFeatureReceiverProperties properties)
            {
            }
        }
    }
    

    O trabalho de codificação resulta em dois assemblies. Um assembly contém o código que fornece a Web Part. Um segundo assembly contém o código anterior. No momento da publicação deste artigo, as Extensões do Visual Studio para o Windows SharePoint Services 3.0 não permitiam a conexão do manipulador de eventos ao arquivo de definição do recurso Web Part. Além disso, o assembly da Web Part deve ser implantado na pasta de aplicativo particular, e não no cache de assembly global. Por isso, você deve criar manualmente o pacote de solução.

    Dica

    Nas etapas a seguir, a forma como você organiza os diferentes arquivos que representam os componentes da solução pode ser adaptada às suas preferências e pode fazer parte da solução do Visual Studio 2005.

  2. Crie uma pasta com duas subpastas para coletar todos os componentes da solução. Uma primeira subpasta armazena os assemblies (nomeada "Assemblies" neste artigo) e a segunda subpasta armazena os diferentes arquivos XML que definem os recursos (nomeada "Features" neste artigo). Copie o assembly de Web Part e o assembly de manipulador de eventos para a pasta Assemblies.

  3. Crie uma subpasta na pasta Features para cada recurso que deva ser incluído na solução do SharePoint. Há apenas um recurso para este passo a passo. Suponha que ele seja chamado MSDNTaskCreator; a pasta Features tem uma subpasta com esse nome. Na raiz dessa pasta, adicione um arquivo Feature.xml que contenha o seguinte XML.

    <Feature  Title="MSDNTaskCreator" 
              Id="55312295-a323-4333-b875-1bbe8ef7fd04" 
              Description="Small Web Part creating a custom task item" 
              Version="1.0.0.0" Scope="Site" Hidden="FALSE" 
              ReceiverAssembly="MSDNFeatureEventhandlers, 
    Version=1.0.0.0, Culture=neutral, PublicKeyToken=5e5a470a5445a8f1" 
              ReceiverClass="MSDN.Samples.MSDNTaskListEventHandler"
              DefaultResourceFile="core" 
    xmlns="https://schemas.microsoft.com/sharepoint/">
      <ElementManifests>
        <ElementManifest Location="elementManifest.xml" />
        <ElementFile Location="MSDNTaskCreator.webpart" />
      </ElementManifests>
    </Feature>
    

    Este XML difere do XML gerado com as Extensões do Visual Studio para o Windows SharePoint Services 3.0, pois dois atributos extras são adicionados ao arquivo Feature.xml:

    • O atributo ReceiverAssembly contém o nome forte completo do assembly do .NET Framework, que apresenta o código do manipulador de evento.

    • O atributo ReceiverClass armazena o nome completo da classe nesse assembly.

  4. Crie um arquivo de manifesto na pasta raiz. Ele é diferente do gerado pelas Extensões do Visual Studio para o Windows SharePoint Services 3.0. Veja o conteúdo a seguir.

    <Solution SolutionId="d63d0395-96a4-449e-83ce-5f7239bbd3ad"

    xmlns="https://schemas.microsoft.com/sharepoint/" >

      <FeatureManifests>

        <FeatureManifest Location="MSDNTaskCreator\Feature.xml" />

      </FeatureManifests>

      <Assemblies>

        <Assembly Location="MSDNTaskCreator.dll"

    DeploymentTarget="WebApplication" >

          <SafeControls>

            <SafeControl Assembly="MSDNTaskCreator, Version=1.0.0.0,

    Culture=neutral, PublicKeyToken=9f4da00116c38ec5"

    Namespace="MSDN.Samples" TypeName="MSDNTaskCreator" Safe="True" />

          </SafeControls>

        </Assembly>

            <Assembly Location="MSDNFeatureEventHandlers.dll"

    DeploymentTarget="GlobalAssemblyCache" />

      </Assemblies>

    </Solution>

    Observe que o nome do recurso não inclui mais um GUID. O primeiro elemento do assembly possui um atributo denominado DeploymentTarget, com o valor WebApplication em vez de GlobalAssemblyCache. Um segundo elemento do assembly com a definição do assembly do .NET Framework contém o código do manipulador de eventos para implantar o cache de assembly global.

  5. Agora, podemos criar o arquivo .ddf denominado, neste caso, .wsp_structure.ddf. Crie-o diretamente na pasta DeploymentFiles. Primeiro, adicione as seguintes informações de cabeçalho.

    ;

    ; *** .ddf file for generating SharePoint solution.

    ;

    .OPTION EXPLICIT ; Generate errors

    .Set CabinetNameTemplate=MSDNTaskCreatorWebPart.wsp

    .set DiskDirectoryTemplate=CDROM ; All cabinets go in a single

    directory

    .Set CompressionType=MSZIP;** All files are compressed in cabinet

    files

    .Set UniqueFiles="ON"

    .Set Cabinet=on

    .Set DiskDirectory1=Package

    O cabeçalho contém duas partes:

    • CabinetNameTemplate é definido como o nome do arquivo da solução do SharePoint (MSDNTaskCreatorWebPart.wsp).

    • DiskDirectory1 é definido como Package. Este é o diretório que contém o arquivo .wsp gerado.

    A segunda parte do arquivo .ddf define a estrutura do pacote.

    ; *** the manifest file

    manifest.xml manifest.xml

    ; *** the feature files

    Features\MSDNTaskCreator\Feature.xml MSDNTaskCreator\Feature.xml

    Features\MSDNTaskCreator\elementManifest.xml MSDNTaskCreator\elementManifest.xml

    Features\MSDNTaskCreator\MSDNTaskCreator.webpart

    MSDNTaskCreator\MSDNTaskCreator.webpart

    ; *** the assemblies

    Assemblies\MSDNTaskCreator.dll MSDNTaskCreator.dll

    Assemblies\MSDNFeatureEventhandlers.dll MSDNFeatureEventhandlers.dll

    O arquivo .ddf é a entrada para o Makecab.exe, uma ferramenta que pode ser obtida instalando-se o SDK do Microsoft Cabinet, conforme descrito anteriormente nesta seção. Você também pode encontrar o Makecab.exe no SDK do Smart Devices (localizado por padrão em \Arquivos de Programas\Microsoft Visual Studio 8\SmartDevices\SDK\SDKTools).

  6. Para facilitar o empacotamento e a implantação, crie um arquivo em lotes com o seguinte conteúdo.

    set MakeCabTool=c:\Program Files\Microsoft Visual Studio 8\

    SmartDevices\SDK\SDKTools\Makecab.exe

    set SPAdminTool=%CommonProgramFiles%\Microsoft Shared\

    web server extensions\12\BIN\stsadm.exe

    "%MakeCabTool%" /f wsp_structure.ddf

    "%SPAdminTool%" -o addsolution -filename package\

    MSDNTaskCreatorWebPart.wsp

    "%SPAdminTool%" -o deploysolution -name MSDNTaskCreatorWebPart.wsp

    -immediate -allowGACDeployment -url <URL name>

    As duas primeiras linhas são as configurações dos caminhos para as ferramentas de linha de comando Makecab e Stsadm. Em seguida, há a linha de criação do pacote de solução.

    Makecab.exe /f wsp_structure.ddf
    

    Como um resultado da execução, MSDNTaskCreatorWebPart.wsp aparece na pasta Package. A próxima linha adiciona MSDNTaskCreatorWebPart.wsp ao armazenamento de solução no farm de servidores executando o seguinte comando:

    stsadm.exe -o addsolution -filename 
    Package\MSDNTaskCreatorWebPart.wsp
    

    A linha final do arquivo em lotes é a implantação da solução em um dos conjuntos de sites.

  7. Você pode usar o link Gerenciamento de soluções na guia Operações na Administração Central para implantar o pacote de solução. Como alternativa, execute os seguintes comandos no prompt de comando:

    cd %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\Bin

    stsadm -o deploysolution -name MSDNTaskCreatorWebPart.wsp -local -allowGACDeployment -url <nome da URL>

    O recurso Web Part é instalado agora, mas não ativado.

  8. Para ativar o recurso, abra a página Recursos do Conjunto de Sites e clique no botão Ativar ao lado do nome do recurso. Como há código que é executado quando o evento FeatureActivated ocorre, a lista de tarefas do MSDN é criada. A desativação desse recurso remove essa lista de tarefas do site raiz do conjunto de sites.

Criar um pacote de solução usando o SharePoint Solution Generator

O SharePoint Solution Generator é um aplicativo autônomo que pode converter determinados tipos de sites do Office SharePoint Server 2007 ou do Windows SharePoint Services 3.0 em um projeto de definição de sites do Visual Studio 2005. O SharePoint Solution Generator não oferece suporte para estes tipos de conteúdo:

  • Alguns modelos de lista e site, como Site Wiki, Portal de Publicação e Portal de Colaboração

  • Campos de pesquisa e tipos de campos personalizados

  • Algumas configurações de site e configurações de lista

Para obter mais informações sobre o SharePoint Solution Generator, consulte Ferramentas do Windows SharePoint Services 3.0: extensões do Visual Studio 2005 (https://go.microsoft.com/fwlink/?linkid=107267\&clcid=0x416).

Ao usar a interface do usuário do SharePoint Solution Generator, você pode compilar um site personalizado em uma solução do SharePoint para implantação em outro farm do SharePoint. Você pode perder algumas personalizações quando importar uma solução para o farm, incluindo as seguintes:

  • As colunas de pesquisa desaparecem de quaisquer listas onde antes estavam presentes.

  • As personalizações do Início Rápido para o site são perdidas.

  • As Web Parts configuradas nas páginas são perdidas.

  • Os receptores de eventos do item da lista personalizada são desanexados das listas.

Para obter mais informações, consulte Revisão de ferramentas e processos.

Realizando ações personalizadas enquanto o site é configurado

O arquivo de solução fornece uma maneira de realizar ações personalizadas enquanto o site está sendo configurado. No arquivo de solução gerado, há uma pasta chamada Site Provisioning Handler que contém uma classe chamada SiteProvisioning.cs. Nessa classe, está o método OnActivated, que permite que você adicione código personalizado. Esse método é chamado quando um novo site está sendo configurado usando-se a Definição de Site. Ele aceita um parâmetro de propriedades nomeadas do tipo SPFeatureReceiverProperties. Ao usar esse parâmetro, você pode encontrar os objetos SPSite e SPWeb usando o seguinte código:

SPWeb web;
SPSite site;
if (properties.Feature.Parent is SPWeb)
{
    web = properties.Feature.Parent as SPWeb;
    site = web.Site;
}
Else
{
    site = properties.Feature.Parent as SPSite;
    web = site.RootWeb;
}

Criar um pacote de solução usando WSPBuilder

Várias ferramentas de código aberto e criadas por comunidade para os Produtos e Tecnologias do SharePoint estão publicamente disponíveis na Internet. Embora a Microsoft não controle, analise, revise, endosse ou distribua os projetos de terceiros nesses sites, algumas dessas ferramentas podem oferecer maneiras úteis de realizar operações comuns.

O WSPBuilder é uma ferramenta de linha de comando que pode ser usada para automatizar o processo de criação de pacotes de solução. O WSPBuilder vai desviar uma pasta recursivamente e criar um pacote de solução do SharePoint, incluindo o arquivo manifest.xml e o arquivo .wsp, com base em arquivos na estrutura da pasta.

A ferramenta WSPBuilder está disponível para download em Codeplex (https://go.microsoft.com/fwlink/?linkid=106471\&clcid=0x416).

Importar um pacote de solução usando a ferramenta de linha de comando Stsadm

Use o seguinte procedimento para importar um arquivo de solução para o banco de dados de solução de um farm do Office SharePoint Server.

Importante

Você deve ser um membro do grupo Administradores em qualquer computador no qual execute a ferramenta de linha de comando Stsadm.

Importar um pacote de solução usando a ferramenta de linha de comando Stsadm

  1. Em um servidor no farm para o qual você deseja importar uma solução, na unidade onde os Produtos e Tecnologias do SharePoint estão instalados, mude para o diretório onde a ferramenta de linha de comando Stsadm está armazenada digitando o comando a seguir em um prompt de comando:

    cd %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\Bin

  2. Digite este comando:

    stsadm -addsolution -filename <nome da solução>

A solução é adicionada ao banco de dados da solução do farm. Para usar a solução, siga o procedimento na próxima seção deste artigo. Para obter mais informações, consulte Addsolution: operação do Stsadm (Office SharePoint Server).

Implantar um pacote de solução usando a ferramenta de linha de comando Stsadm

Você pode usar a operação deploysolution para implantar a solução através de um prompt de comando.

Implantar um pacote de solução em um único conjunto de sites

  1. Em um servidor no farm em que você deseja implantar um pacote de solução importado, na unidade onde os Produtos e Tecnologias do SharePoint estão instalados, mude para o diretório onde a ferramenta de linha de comando Stsadm está armazenada digitando o comando a seguir:

    cd %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\Bin

  2. Digite este comando:

    **stsadm –o deploysolution –name <**nome da solução > –url <nome da URL>

    em que nome do arquivo é o nome da solução e nome da URL é a URL do aplicativo Web no qual você deseja implantar a solução importada.

Em vez de direcionar a um conjunto de sites, você pode usar, opcionalmente, o seguinte procedimento para implantar a sua solução em cada conjunto de sites disponível no farm de servidores usando o parâmetro allcontenturls.

Implantar um pacote de solução em todos os conjuntos de sites

  1. Em um servidor no farm em que você deseja implantar um pacote de solução importado, na unidade onde os Produtos e Tecnologias do SharePoint estão instalados, mude para o diretório onde a ferramenta de linha de comando Stsadm está armazenada digitando o comando a seguir:

    cd %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\Bin

  2. Digite este comando:

    stsadm –o deploysolution –name <nome da solução> –allcontenturls [-time] <tempo para implantar> [-allowgacdeployment] [-allowcaspolicies]

    em que nome da solução é o nome da solução.

Por padrão, a solução é implantada imediatamente, mas você também pode agendar a implantação usando o parâmetro time.

Os parâmetros allowgacdeployment e allowcaspolicies são importantes. O parâmetro allowgacdeployment permite que o Office SharePoint Server 2007 implante os assemblies no cache de assembly global. O parâmetro allowcaspolicies permite a criação de um arquivo personalizado de diretiva de segurança de acesso do código (CAS) e sua ativação no arquivo Web.config do conjunto de sites de destino.

Para obter mais informações, consulte Deploysolution: operação de Stsadm (Office SharePoint Server).

Implantando elementos de site desenvolvidos usando recursos

Nesta seção:

  • O que é um recurso?

  • Quando usar recursos

  • Criar um pacote de recursos

  • Implantar um recurso manualmente

  • Instalar e ativar um recurso usando Stsadm

Para obter mais informações sobre recursos, consulte Trabalhando com recursos (https://go.microsoft.com/fwlink/?linkid=105337\&clcid=0x416).

O que é um recurso?

Um recurso é um contêiner de várias extensões definidas para o Office SharePoint Server 2007 e o Windows SharePoint Services 3.0 e é composto por um conjunto de arquivos XML, que são implantados em servidores Web. Você pode implantar um recurso como parte de uma definição de site ou um pacote de solução e pode ativar individualmente um recurso em sites do Office SharePoint Server.

Os recursos reduzem a complexidade envolvida na criação de personalizações simples de site e são robustos quando as atualizações são aplicadas a uma implantação. Os recursos eliminam a necessidade de copiar grandes porções de código para alterar uma simples funcionalidade, reduzindo, assim, problemas de controle de versão e inconsistência que podem surgir entre servidores Web front-end.

Os recursos tornam mais fácil ativar ou desativar a funcionalidade durante a implantação, e os administradores podem transformar facilmente o modelo ou a definição de um site ativando ou desativando um recurso em particular na interface do usuário.

Os recursos fornecem as seguintes funcionalidades:

  • Semântica de escopo que permite que você especifique onde o código personalizado será executado.

  • Capacidade para especificar se um recurso será instalado no farm de destino quando for implantado.

  • Capacidade para ativar ou desativar recursos em um determinado escopo sem instalar ou desinstalar código.

  • Capacidade para armazenar dados exigidos por um recurso no seu escopo em uma pasta de propriedades com escopo.

  • A base de uma estrutura unificada para implantação distribuída de soluções do Windows SharePoint Services 3.0 e do Office SharePoint Server 2007.

Os itens que estavam em um grande arquivo de definição de site no Microsoft Office SharePoint Portal Server 2003 são elementos separados nos recursos do Windows SharePoint Services 3.0. Um elemento é uma unidade atômica em um recurso. O elemento Feature é usado em um arquivo Feature.xml para definir um recurso e para especificar o local dos assemblies, dos arquivos, das dependências ou das propriedades que oferecem suporte ao recurso. Um recurso inclui um arquivo Feature.xml e qualquer número de arquivos que descrevam os elementos individuais. Outro elemento de recurso de um esquema diferente é usado em um arquivo Onet.xml para especificar que um recurso seja ativado em uma definição de site.

Um arquivo Feature.xml geralmente aponta para um ou mais arquivos XML cuja marca de nível superior <Elements> tenha definições para elementos que suportem o recurso. Os elementos no Windows SharePoint Services 3.0 geralmente correspondem aos antigos nós discretos no arquivo Onet.xml ou Schema.xml da versão anterior. Há vários tipos de elementos — por exemplo, um item de menu personalizado ou um manipulador de eventos.

Por exemplo, um recurso pode oferecer a funcionalidade "Meus Itens Favoritos" que inclui os seguintes elementos:

  • Uma lista personalizada que armazena, por usuário, uma lista de itens favoritos, que é criada como uma única lista oculta por espaço de trabalho quando o recurso é habilitado.

  • Um item de menu personalizado que é anexado a todas as listas, chamado "Adicionar a Favoritos", que adiciona um item à lista Favoritos.

  • Uma Web Part que implementa o controle de uso e link para exibir os 10 favoritos principais do usuário na parte superior.

Cada elemento do recurso, por si só, pode não ser muito útil, mas quando você habilita o recurso em um site, todos esses elementos contribuem para uma solução completa.

Para obter mais informações, consulte os seguintes recursos no SDK do Windows SharePoint Services 3.0:

Quando usar recursos

Você pode usar recursos para implantar elementos de site desenvolvidos se um ou mais dos seguintes fatores se aplicarem:

  • Necessidade de ativação e desativação Ao implantar personalizações de elemento de site em um recurso, você pode instalar, ativar e desativar o recurso usando operações na ferramenta de linha de comando Stsadm ou usando o modelo de objeto. Você também pode ativar e desativar um recurso através da interface do usuário.

  • Flexibilidade de escopo Você pode ativar um recurso para um único escopo, incluindo farm, aplicativo Web, conjunto de sites e site.

  • Facilidade de implantação distribuída Um recurso é de fácil implantação em vários farms de servidores.

  • Controle detalhado através do modelo de objeto de recurso O modelo de objeto de recurso permite que você especifique a lista dos recursos instalados em um determinado escopo e controle se os recursos estão habilitados no farm e nos níveis do site.

Como mostrado nos diagramas de implantação no artigo Cenários de personalização, você pode usar recursos para implantar personalizações de elementos de site desenvolvidos entre estações de trabalho de desenvolvedor e um farm de integração, e entre um farm de integração e estações de trabalho cliente de criação e farms piloto ou de produção.

Criar um pacote de recursos

Quando você cria uma página da Web personalizada no Office SharePoint Server 2007, a página ASPX pode pertencer somente ao conjunto de sites raiz do servidor que executa o Office SharePoint Server 2007. Para criar uma página em um conjunto de sites que não esteja na raiz, você deve implantar a página da Web personalizada como um recurso do SharePoint. Um recurso do SharePoint requer dois arquivos XML simples e é implantado usando-se a ferramenta de linha de comando Stsadm — um processo que pode ser automatizado com um arquivo em lotes.

Dica

Para executar a ferramenta de linha de comando Stsadm, você deve alterar o diretório onde a ferramenta Stsadm é armazenada. Para fazer isso, na unidade onde os Produtos e Tecnologias do SharePoint estão instalados, execute o seguinte comando: cd %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\Bin

Criar um recurso personalizado

  1. Crie um arquivo Feature.xml. Veja a seguir um exemplo de arquivo Feature.xml, que é necessário para conceder ao recurso uma ID exclusiva e apontar para o arquivo Module.xml.

    <?xml version="1.0"?>
    <Feature Id="8C4DD0CB-5A94-44da-9B7F-E9ED49C2B2DC" Title=
    "Custom Web page"
    Description="This simple example feature adds an ASPX page 
    with a hosted XmlFormView control" 
    Version="1.0.0.0" Scope="Web"
    xmlns="https://schemas.microsoft.com/sharepoint/">
    <ElementManifests>
        <ElementManifest Location="Module.xml"/>
    </ElementManifests>
    </Feature>
    
  2. Crie um arquivo Module.xml. Veja a seguir um exemplo de arquivo Module.xml, que contém informações sobre a página (ou páginas) que faz parte da solução.

    <?xml version="1.0"?>
    <Elements xmlns="https://schemas.microsoft.com/sharepoint/">
        <module name="file" url="" path="">
            <file url="XmlFormViewPage.aspx" type="ghostable"> </file>
        </module>
    </Elements>
    
  3. Altere o valor da url do arquivo para o nome da página ASPX e depois execute as operações de linha de comando conforme descrito em Instalar e ativar um recurso usando a ferramenta de linha de comando Stsadm. Você pode criar um arquivo em lotes e executar essas operações de linha de comando em sequência.

  4. Execute as seguintes ações:

    1. Crie uma pasta na pasta Features do seu computador servidor, geralmente localizada em %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\TEMPLATE\FEATURES.

    2. Adicione a página ASPX personalizada a essa pasta.

    3. Crie os arquivos Feature.xml e Module.xml com base nos exemplos mostrados na seção anterior e adicione-os ao mesmo local.

Para instalar e ativar um recurso depois que ele tiver sido implantado, consulte Instalar e ativar um recurso usando a ferramenta de linha de comando Stsadm posteriormente neste artigo.

Implantar um recurso manualmente

Para implementar um recurso, adicione uma subpasta contendo uma definição de recurso no diretório de configuração Features (neste exemplo, Unidade_local:\%COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\TEMPLATE\FEATURES). A subpasta de recurso inclui um arquivo Feature.xml que define as propriedades de base do recurso e lista os elementos vinculados a ele, como os arquivos XML que contêm manifestos de elementos e quaisquer outros arquivos de suporte. Uma pasta de recurso só pode ter um arquivo Feature.xml, ou pode ter um arquivo Feature.xml e qualquer número de arquivos de elementos de suporte, incluindo arquivos XML, mas também .aspx, .htm, .xsn, .resx, .dll e outros tipos de arquivo.

Dica

Quando você cria uma pasta no diretório Features através do Windows Explorer clicando com o botão direito do mouse em uma pasta, apontando para Novo e clicando em Pasta, a nova pasta não possui permissões herdadas. Se você implantar um recurso na pasta, algumas páginas do Windows SharePoint Services 3.0, como para configurações de site ou exibições de lista, não podem ser acessadas. Você pode corrigir esse problema criando a nova pasta no prompt de comando com o comando md.

Depois de criar a pasta de recurso, você pode instalar e ativar o recurso usando as operações de linha de comando Stsadm ou usando o modelo de objeto. Você também pode ativar um recurso na página Recursos do Conjunto de Sites ou na página Recursos de Site do conjunto de sites ou do site no qual você deseja ativar o recurso. A instalação de um recurso torna a sua definição e os seus elementos conhecidos através de um farm de servidores, e a ativação do recurso torna o recurso disponível em determinado escopo.

Instalar e ativar um recurso usando a ferramenta de linha de comando Stsadm

Você instala recursos no diretório 12\Template\Features, com cada recurso em seu próprio subdiretório. Na raiz dessa pasta, um arquivo Feature.xml define o conteúdo do recurso.

Dica

Para executar a ferramenta de linha de comando Stsadm, você deve alterar para o diretório onde a ferramenta está armazenada. Para fazer isso, digite o seguinte comando: cd %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\Bin

Você deve instalar recursos individuais antes de utilizá-los. Para fazer isso, execute o seguinte comando no prompt de comando:

stsadm -o installfeature-filename <caminho relativo> -name <pasta de recurso> [-force]

Para obter mais informações, consulte Installfeature: operação de Stsadm (Office SharePoint Server).

Além de instalar um recurso, você deve ativá-lo antes usá-lo (a menos que o escopo do recurso esteja no farm, o que significa que ele é ativado automaticamente).

Para ativar um recurso, execute o seguinte comando:

stsadm -o activatefeature -filename <caminho relativo> -name <pasta de recurso> -id <ID do recurso> [-url] <nome da URL> [-force]

Para obter mais informações, consulte Activatefeature: operação de Stsadm (Office SharePoint Server).

Para desinstalar um recurso para que sua definição não esteja mais disponível em um farm de servidores, você pode usar a operação uninstall. Para obter mais informações, consulte Uninstallfeature: operação Stsadm (Office SharePoint Server).

Dica

Você deve desativar os recursos antes de desinstalá-los, a menos que seu escopo esteja em aplicativos Web ou farms.

Após a desinstalação de um recurso, redefina o IIS (Serviços de Informações da Internet) para que as alterações tenham efeito.

Para desativar um recurso para que ele se torne inativo em seu escopo originalmente designado sem desinstalá-lo, você pode usar a operação deactivate. Para obter mais informações, consulte Deactivatefeature: operação de Stsadm (Office SharePoint Server).

Baixar este manual

Este tópico está incluído no seguinte manual, que pode ser baixado para facilitar a leitura e a impressão:

Consulte a lista completa de manuais disponíveis no site de manuais para download do Office SharePoint Server 2007 (em inglês).

Consulte também

Conceitos

Implantar personalizações
Implantando personalizações de elementos de site criados
Componentes do pacote de soluções