Partilhar via


Demonstra Passo a passo: A criação de uma etapa de implantação personalizado para projetos do SharePoint

Quando você implanta um projeto do SharePoint, Visual Studio 2010 executa uma série de as etapas de implantação em uma ordem específica. Visual Studio inclui várias etapas de implantação interna, mas você também pode criar seus próprios.

Esta explicação passo a passo, você criará uma etapa de implantação personalizada para atualizar soluções em um servidor do SharePoint. Visual Studio inclui etapas de implantação interna para muitas tarefas, tais cancelamento ou adição de soluções, mas ele não inclui uma etapa de implantação para atualização de soluções. Por padrão, quando você implanta uma solução do SharePoint, Visual Studio primeiro cancela a solução (se já está implantado) e, em seguida, reimplanta toda a solução. Para obter mais informações sobre as etapas de implantação interna, consulte Implantando pacotes de solução do SharePoint.

Essa explicação passo a passo demonstra as seguintes tarefas:

  • Criação de uma extensão de Visual Studio que executa duas tarefas principais:

    • Ele define uma etapa de implantação personalizada para atualizar soluções do SharePoint.

    • Ele cria uma extensão de projeto que define um novo a configuração de implantação. Uma configuração de implantação é um conjunto de etapas de implantação são executados para um determinado projeto. A nova configuração de implantação inclui a etapa de implantação personalizada e várias etapas de implantação interna.

  • Criação personalizada de dois comandos do SharePoint que são chamados pelo conjunto de módulos de extensão. Comandos do SharePoint são métodos que podem ser chamados por assemblies de extensão para usar APIs no modelo de objeto de servidor do SharePoint. Para obter mais informações, consulte A chamada para os modelos de objeto do SharePoint.

  • Construindo um pacote de extensão de Visual Studio (VSIX) para implantar ambas dos assemblies.

  • Testando a nova etapa de implantação.

Pré-requisitos

É necessário que os seguintes componentes no computador de desenvolvimento para concluir este passo a passo:

Conhecimento dos seguintes conceitos é útil, mas não necessário para concluir o passo a passo:

A criação de projetos

Para concluir este passo a passo, você precisa criar três projetos:

  • Um projeto VSIX para criar o pacote VSIX para implantar a extensão.

  • Um projeto de biblioteca de classe que implementa a extensão. Este projeto deve usar o .NET Framework 4.

  • Um projeto de biblioteca de classe que define os comandos do SharePoint personalizados. Este projeto deve usar o.NET Framework 3.5.

Inicie o passo a passo através da criação de projetos.

Para criar o projeto VSIX

  1. Inicie o Visual Studio

  2. No menu File, aponte para New, e em seguida, clique em Project.

  3. No Novo projeto caixa de diálogo caixa, expanda o Visual C# ou Visual Basic nós e clique extensibilidade.

    ObservaçãoObservação

    O extensibilidade nó só estará disponível se você instalar o SDK de 2010 Visual Studio. Para obter mais informações, consulte a seção de pré-requisitos acima.

  4. Na caixa de combinação na parte superior da caixa de diálogo, selecione .NET Framework 4.

  5. Clique o O projeto de VSIX modelo.

  6. No nome , digite UpgradeDeploymentStep.

  7. Clique em OK.

    Visual StudioAdiciona o UpgradeDeploymentStep de projeto para Solution Explorer.

Para criar o projeto de extensão

  1. Em Solution Explorer, o botão direito do mouse no nó da solução, clique em Adde em seguida, clique em Novo projeto.

    ObservaçãoObservação

    Em projetos de Visual Basic, o nó de solução aparece na Solution Explorer somente quando o Always show solution caixa de seleção estiver marcada na Geral, projetos e soluções, caixa de diálogo Options.

  2. No Novo projeto caixa de diálogo caixa, expanda o Visual C# ou Visual Basic nós e clique Windows.

  3. Na caixa de combinação na parte superior da caixa de diálogo, selecione .NET Framework 4.

  4. Selecione o Biblioteca de classe o modelo de projeto.

  5. No nome , digite DeploymentStepExtension.

  6. Clique em OK.

    Visual StudioAdiciona o DeploymentStepExtension o projeto à solução e abre o arquivo de código padrão Class1.

  7. Exclua o arquivo de código Class1 do projeto.

Para criar o projeto de comando do SharePoint

  1. Em Solution Explorer, o botão direito do mouse no nó da solução, aponte para Adde em seguida, clique em Novo projeto.

    ObservaçãoObservação

    Em projetos de Visual Basic, o nó de solução aparece apenas na Solution Explorer quando o Always show solution caixa de seleção estiver marcada na Geral, projetos e soluções, caixa de diálogo Options.

  2. No Add New Project caixa de diálogo caixa, expanda Visual C# ou Visual Basice em seguida, clique em Windows.

  3. Clique o Biblioteca de classe o modelo de projeto.

  4. Na caixa de combinação na parte superior da caixa de diálogo, selecione .NET Framework 3.5.

  5. No nome , digite SharePointCommands.

  6. Clique em OK.

    Adiciona a Visual Studio a SharePointCommands o projeto à solução e abre o arquivo de código padrão Class1.

  7. Exclua o arquivo de código Class1 do projeto.

Configurando os projetos

Antes de escrever código para criar a etapa de implantação personalizada, você precisa adicionar os arquivos de código e referências de assembly e configurar os projetos.

Para configurar o projeto de DeploymentStepExtension

  1. No DeploymentStepExtension de projeto, adicione dois arquivos de código chamados:

    • UpgradeStep

    • DeploymentConfigurationExtension

  2. No menu Project, escolha Add Reference.

  3. Sobre o .NET guia, pressione CTRL e selecione os seguintes assemblies e clique OK:

    • Microsoft.VisualStudio.SharePoint

    • System.ComponentModel.Composition

Para configurar o projeto de SharePointCommands

  1. No SharePointCommands de projeto, adicione um arquivo de código, chamado de comandos.

  2. Em Solution Explorer, clique na SharePointCommands no nó do projeto.

  3. No menu Project, escolha Add Reference.

  4. Sobre o .NET guia, pressione CTRL e selecione os seguintes assemblies e clique OK:

    • Microsoft. SharePoint

    • Microsoft.VisualStudio.SharePoint.Commands

Definindo a etapa de implantação personalizada

Crie uma classe que define a etapa de implantação de atualização. Para definir a etapa de implantação, a classe de implementa o IDeploymentStep interface. Implemente essa interface, sempre que você deseja definir uma etapa de implantação personalizada.

Para definir a etapa de implantação personalizada

  1. No DeploymentStepExtension de projeto, clique duas vezes no arquivo de código UpgradeStep.

  2. Cole o código a seguir esse arquivo.

    ObservaçãoObservação

    Após adicionar esse código, o projeto terá alguns erros de compilação. Esses erros desaparecem quando você adiciona o código em etapas posteriores.

    Imports System
    Imports Microsoft.VisualStudio.SharePoint
    Imports Microsoft.VisualStudio.SharePoint.Deployment
    Imports System.ComponentModel.Composition
    
    Namespace Contoso.DeploymentSteps.Upgrade
    
        ' Export attribute: Enables Visual Studio to discover and load this deployment step.
        ' DeploymentStep attribute: Specifies the ID for this new deployment step.
        ' UpgradeStep class: Defines a new deployment step that can be used to upgrade a solution 
        '     on a SharePoint site.
        <Export(GetType(IDeploymentStep))> _
        <DeploymentStep("Contoso.DeploymentSteps.UpgradeSolution")> _
        Friend Class UpgradeStep
            Implements IDeploymentStep
    
            Private solutionName As String
            Private solutionFullPath As String
    
            Private Sub Initialize(ByVal stepInfo As IDeploymentStepInfo) _
                Implements IDeploymentStep.Initialize
                stepInfo.Name = "Upgrade solution"
                stepInfo.StatusBarMessage = "Upgrading solution..."
                stepInfo.Description = "Upgrades the solution on the local machine."
            End Sub
    
            ' Specifies whether the solution can be upgraded.
            Private Function CanExecute(ByVal context As IDeploymentContext) As Boolean _
                Implements IDeploymentStep.CanExecute
    
                ' SharePoint returns all the installed solutions names in lower case.
                solutionName = (context.Project.Package.Model.Name & ".wsp").ToLower()
                solutionFullPath = context.Project.Package.OutputPath
                Dim solutionExists As Boolean = _
                    context.Project.SharePointConnection.ExecuteCommand(Of String, Boolean)(
                    "Contoso.Commands.IsSolutionDeployed", solutionName)
    
                ' Throw exceptions in error cases because deployment cannot proceed.
                If context.Project.IsSandboxedSolution = True Then
                    Dim sandboxMessage As String = "Cannot upgrade the solution. Upgrade deployment " & _
                        "configuration does not support Sandboxed solutions."
                    context.Logger.WriteLine(sandboxMessage, LogCategory.Error)
                    Throw New InvalidOperationException()
                ElseIf solutionExists = False Then
                    Dim notDeployedMessage As String = String.Format("Cannot upgrade the solution. The IsSolutionDeployed " & _
                        "command cannot find the following solution on the SharePoint site: {0}.", solutionName)
                    context.Logger.WriteLine(notDeployedMessage, LogCategory.Error)
                    Throw New InvalidOperationException(notDeployedMessage)
                End If
    
                ' Execute step and continue with deployment.
                Return True
            End Function
    
            Private Sub Execute(ByVal context As IDeploymentContext) _
                Implements IDeploymentStep.Execute
                context.Logger.WriteLine("Upgrading solution: " & solutionName, LogCategory.Status)
                context.Project.SharePointConnection.ExecuteCommand("Contoso.Commands.UpgradeSolution", _
                    solutionFullPath)
            End Sub
    
        End Class
    End Namespace
    
    using System;
    using Microsoft.VisualStudio.SharePoint;
    using Microsoft.VisualStudio.SharePoint.Deployment;
    using System.ComponentModel.Composition;
    
    namespace Contoso.DeploymentSteps.Upgrade
    {
        // Enables Visual Studio to discover and load this deployment step.
        [Export(typeof(IDeploymentStep))]
    
        // Specifies the ID for this new deployment step.
        [DeploymentStep("Contoso.DeploymentSteps.UpgradeSolution")]
    
        // Defines a new deployment step that can be used to upgrade a solution on a SharePoint site.
        internal class UpgradeStep : IDeploymentStep
        {
            private string solutionName;
            private string solutionFullPath;
    
            // Implements IDeploymentStep.Initialize.
            public void Initialize(IDeploymentStepInfo stepInfo)
            {
                stepInfo.Name = "Upgrade solution";
                stepInfo.StatusBarMessage = "Upgrading solution...";
                stepInfo.Description = "Upgrades the solution on the local machine.";
            }
    
            // Implements IDeploymentStep.CanExecute. Specifies whether the solution can be upgraded.
            public bool CanExecute(IDeploymentContext context)
            {
                // SharePoint returns all the installed solutions names in lower case.
                solutionName = (context.Project.Package.Model.Name + ".wsp").ToLower();
                solutionFullPath = context.Project.Package.OutputPath;
                bool solutionExists = context.Project.SharePointConnection.ExecuteCommand<string, bool>(
                    "Contoso.Commands.IsSolutionDeployed", solutionName);
    
                // Throw exceptions in error cases because deployment cannot proceed.
                if (context.Project.IsSandboxedSolution)
                {
                    string sandboxMessage = "Cannot upgrade the solution. The upgrade deployment configuration " +
                        "does not support Sandboxed solutions.";
                    context.Logger.WriteLine(sandboxMessage, LogCategory.Error);
                    throw new InvalidOperationException(sandboxMessage);
                }
                else if (!solutionExists)
                {
                    string notDeployedMessage = string.Format("Cannot upgrade the solution. The IsSolutionDeployed " +
                        "command cannot find the following solution: {0}.", solutionName);
                    context.Logger.WriteLine(notDeployedMessage, LogCategory.Error);
                    throw new InvalidOperationException(notDeployedMessage);
                }
    
                // Execute step and continue with deployment.
                return true;
            }
    
            // Implements IDeploymentStep.Execute.
            public void Execute(IDeploymentContext context)
            {
                context.Logger.WriteLine("Upgrading solution: " + solutionName, LogCategory.Status);
                context.Project.SharePointConnection.ExecuteCommand("Contoso.Commands.UpgradeSolution",
                    solutionFullPath);
            }
        }
    }
    

Criando uma configuração de implantação que inclui a etapa de implantação personalizada

Crie uma extensão de projeto para a nova configuração de implantação. A configuração de implantação inclui várias etapas de implantação interna e a nova etapa de implantação de atualização. Essa configuração de implantação torna mais fácil para desenvolvedores do SharePoint usar a etapa de implantação de atualização em projetos do SharePoint.

Para criar a configuração de implantação, a classe de implementa o ISharePointProjectExtension interface. Implemente essa interface, sempre que você deseja criar uma extensão de projeto do SharePoint.

Para criar a configuração de implantação

  1. No DeploymentStepExtension de projeto, clique duas vezes no arquivo de código DeploymentConfigurationExtension.

  2. Cole o código a seguir esse arquivo.

    Imports Microsoft.VisualStudio.SharePoint
    Imports Microsoft.VisualStudio.SharePoint.Deployment
    Imports System.ComponentModel.Composition
    
    Namespace Contoso.DeploymentSteps.Upgrade
    
        ' Export attribute: Enables Visual Studio to discover and load this project-level extension.
        ' DeploymentConfigurationExtension class: Defines a project-level extension. The extension creates 
        '     a new deployment configuration that includes the upgrade deployment step.
        <Export(GetType(ISharePointProjectExtension))> _
        Friend Class DeploymentConfigurationExtension
            Implements ISharePointProjectExtension
    
            Private Sub Initialize(ByVal projectService As ISharePointProjectService) _
                Implements ISharePointProjectExtension.Initialize
                AddHandler projectService.ProjectInitialized, AddressOf ProjectInitialized
            End Sub
    
            ' Creates the new deployment configuration.
            Private Sub ProjectInitialized(ByVal Sender As Object, ByVal e As SharePointProjectEventArgs)
                Dim deploymentSteps As String() = New String() _
                {
                    DeploymentStepIds.PreDeploymentCommand, _
                    DeploymentStepIds.RecycleApplicationPool, _
                    "Contoso.DeploymentSteps.UpgradeSolution", _
                    DeploymentStepIds.PostDeploymentCommand _
                }
                Dim retractionSteps As String() = New String() _
                {
                    DeploymentStepIds.RecycleApplicationPool, _
                    DeploymentStepIds.RetractSolution
                }
                Dim configuration As IDeploymentConfiguration = e.Project.DeploymentConfigurations.Add( _
                    "Upgrade", deploymentSteps, retractionSteps)
                configuration.Description = "This is the upgrade deployment configuration"
            End Sub
    
        End Class
    End Namespace
    
    using Microsoft.VisualStudio.SharePoint;
    using Microsoft.VisualStudio.SharePoint.Deployment;
    using System.ComponentModel.Composition;
    
    namespace Contoso.DeploymentSteps.Upgrade
    {
        // Enables Visual Studio to discover and load this project-level extension.
        [Export(typeof(ISharePointProjectExtension))]
    
        // Defines a project-level extension. The extension creates a new deployment configuration that includes the
        // upgrade deployment step.
        internal class DeploymentConfigurationExtension : ISharePointProjectExtension
        {
            // Implements ISharePointProjectExtension.Initialize.
            public void Initialize(ISharePointProjectService projectService)
            {
                projectService.ProjectInitialized += ProjectInitialized;
            }
    
            // Creates the new deployment configuration.
            private void ProjectInitialized(object sender, SharePointProjectEventArgs e)
            {
                string[] deploymentSteps = new string[] 
                {
                    DeploymentStepIds.PreDeploymentCommand,
                    DeploymentStepIds.RecycleApplicationPool,
                    "Contoso.DeploymentSteps.UpgradeSolution",
                    DeploymentStepIds.PostDeploymentCommand 
                };
    
                string[] retractionSteps = new string[] 
                {
                    DeploymentStepIds.RecycleApplicationPool,
                    DeploymentStepIds.RetractSolution                
                };
    
                IDeploymentConfiguration configuration = e.Project.DeploymentConfigurations.Add(
                    "Upgrade", deploymentSteps, retractionSteps);
                configuration.Description = "This is the upgrade deployment configuration";
            }
        }
    }
    

Criando os comandos do SharePoint personalizado

Crie dois comandos personalizados que chamam o modelo de objeto de servidor do SharePoint. Um comando determina se uma solução já está implantada; o outro comando atualiza uma solução.

Para definir os comandos do SharePoint

  1. No SharePointCommands de projeto, duas vezes no arquivo de código de comandos.

  2. Cole o código a seguir esse arquivo.

    Imports System
    Imports System.IO
    Imports Microsoft.SharePoint
    Imports Microsoft.SharePoint.Administration
    Imports Microsoft.VisualStudio.SharePoint.Commands
    
    Namespace Contoso.DeploymentSteps.Upgrade
    
        Friend Class Commands
    
            ' Determines whether the specified solution has been deployed to the local SharePoint server.
            <SharePointCommand("Contoso.Commands.IsSolutionDeployed")> _
            Private Function IsSolutionDeployed(ByVal context As ISharePointCommandContext, ByVal solutionName As String) As Boolean
                Dim solution As SPSolution = SPFarm.Local.Solutions(solutionName)
                Return solution IsNot Nothing
            End Function
    
            ' Upgrades the specified solution to the local SharePoint server.
            <SharePointCommand("Contoso.Commands.UpgradeSolution")> _
            Private Sub UpgradeSolution(ByVal context As ISharePointCommandContext, ByVal fullWspPath As String)
                Dim solution As SPSolution = SPFarm.Local.Solutions(Path.GetFileName(fullWspPath))
                If solution Is Nothing Then
                    Throw New InvalidOperationException("The solution has not been deployed.")
                End If
                solution.Upgrade(fullWspPath)
            End Sub
    
        End Class
    End Namespace
    
    using System;
    using System.IO;
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.Administration;
    using Microsoft.VisualStudio.SharePoint.Commands;
    
    namespace Contoso.DeploymentSteps.Upgrade
    {
        internal class Commands
        {
            // Determines whether the specified solution has been deployed to the local SharePoint server.
            [SharePointCommand("Contoso.Commands.IsSolutionDeployed")]
            private bool IsSolutionDeployed(ISharePointCommandContext context, string solutionName)
            {
                SPSolution solution = SPFarm.Local.Solutions[solutionName];
                return solution != null;
            }
    
            // Upgrades the specified solution to the local SharePoint server.
            [SharePointCommand("Contoso.Commands.UpgradeSolution")]
            private void UpgradeSolution(ISharePointCommandContext context, string fullWspPath)
            {
                SPSolution solution = SPFarm.Local.Solutions[Path.GetFileName(fullWspPath)];
    
                if (solution == null)
                {
                    throw new InvalidOperationException("The solution has not been deployed.");
                }
    
                solution.Upgrade(fullWspPath);
            }
        }
    }
    

Ponto de Verificação

Neste momento o passo a passo, todo o código para a etapa de implantação personalizada e os comandos do SharePoint estão agora em projetos. Crie a solução para certificar-se de que os dois projetos compile sem erros.

Para criar a solução

  • Sobre o Build menu, selecione Build Solution.

Criando um pacote VSIX para implantar a extensão.

Para implantar a extensão, use o projeto VSIX em sua solução para criar um pacote VSIX. Primeiro, configure o pacote VSIX modificando o arquivo source.extension.vsixmanifest que está incluído no projeto VSIX. Em seguida, crie o pacote VSIX pela criação da solução.

Para configurar e criar o pacote VSIX

  1. Em Solution Explorer, na UpgradeDeploymentStep de projeto, clique duas vezes o source.extension.vsixmanifest arquivo.

    Visual Studio abre o arquivo no editor de manifesto. O arquivo source.extension.vsixmanifest é a base para o arquivo de extension.vsixmanifest é necessária para todos os pacotes VSIX. Para obter mais informações sobre este arquivo, consulte VSX Schema for Extensions.

  2. No Nome do produto , digite Atualizar a etapa de implantação para projetos do SharePoint.

  3. No Autor , digite Contoso.

  4. No Descrição , digite fornece uma etapa de implantação de atualização personalizada que pode ser usada em projetos SharePoint.

  5. No conteúdo seção do editor, clique na Adicionar conteúdo botão.

  6. No Adicionar conteúdo na caixa de Selecione um tipo de conteúdo caixa de listagem, selecione MEF componente.

    ObservaçãoObservação

    Este valor corresponde do MefComponent elemento no arquivo extension.vsixmanifest. Este elemento Especifica o nome de um assembly de extensão no pacote VSIX. Para obter mais informações, consulte MEFComponent Element (VSX Schema).

  7. Em Selecionar uma fonte de, clique o projeto botão de opção e, em seguida, selecione DeploymentStepExtension em que a caixa de listagem.

  8. Clique em OK.

  9. No editor de manifesto, clique na Adicionar conteúdo novamente.

  10. No Adicionar conteúdo na caixa de Selecione um tipo de conteúdo caixa de listagem, selecione Tipo de extensão personalizada.

    ObservaçãoObservação

    Este valor corresponde do CustomExtension elemento no arquivo extension.vsixmanifest. Este elemento Especifica uma extensão personalizada que você deseja incluir na extensão de Visual Studio. Para obter mais informações, consulte CustomExtension Element (VSX Schema).

  11. No tipo de caixa de texto, digite SharePoint.Commands.v4.

    ObservaçãoObservação

    Este valor corresponde do Type atributo da CustomExtension elemento no arquivo extension.vsixmanifest. O valor Sharepoint.Commands.v4 é necessária para todos os assemblies de extensão personalizada que contêm comandos personalizados do SharePoint.

  12. Em Selecionar uma fonte de, clique o projeto botão de opção e, em seguida, selecione SharePointCommands em que a caixa de listagem.

  13. Clique em OK.

  14. Sobre o Build menu, clique em Build Solution. Certifique-se de que a solução é compilado sem erros.

  15. Abra a pasta de saída de compilação do projeto UpgradeDeploymentStep. Certifique-se de que esta pasta agora contém o arquivo UpgradeDeploymentStep.vsix.

    Por padrão, a pasta de saída de compilação é a.. pasta \bin\debug na pasta que contém o arquivo de projeto.

Preparando para testar a etapa de implantação de atualização

Para testar a etapa de implantação de atualização, você primeiro deve implantar uma solução de exemplo ao site do SharePoint. Comece a extensão na instância experimental do Visual Studio de depuração. Em seguida, criar uma instância de lista para usar para testar a etapa de implantação e uma definição de lista e, em seguida, implantá-los para o site do SharePoint. Em seguida, modifique a definição de lista e a instância de lista e reimplantá-las para ver como o processo de implantação padrão substitui soluções no site do SharePoint.

Posteriormente nesta explicação passo a passo, você modificar a definição de lista e a instância de lista e, em seguida, atualizá-los no site do SharePoint.

Para iniciar a extensão de depuração.

  1. Reinicie o Visual Studio com privilégios de administrador e abra a solução de UpgradeDeploymentStep.

  2. No projeto DeploymentStepExtension, abra o arquivo de código de UpgradeStep e adicionar um ponto de interrupção para a primeira linha do código de CanExecute e Execute métodos.

  3. Pressione F5 para iniciar a depuração.

  4. Visual Studio instala a extensão para a etapa de implantação de %UserProfile%\AppData\Local\Microsoft\VisualStudio\10.0Exp\Extensions\Contoso\Upgrade para Projects\1.0 do SharePoint e inicia uma instância experimental do Visual Studio. Você testará a etapa de implantação de atualização nesta instância do Visual Studio.

Para criar a definição de lista e uma instância de lista

  1. Na instância experimental do Visual Studio, sobre o arquivo , aponte para novae, em seguida, clique em projeto.

  2. No Novo projeto caixa de diálogo caixa, expanda Visual C#, expanda SharePointe, em seguida, clique em 2010.

  3. Na caixa de combinação na parte superior da caixa de diálogo, certifique-se de que .NET Framework 3.5 está selecionada. Projetos para Microsoft SharePoint Foundation 2010 e Microsoft SharePoint Server 2010 exigem essa versão do.NET Framework.

  4. Na lista de modelos de projeto, clique em Definição de lista.

  5. No nome , digite EmployeesListDefinition.

  6. Clique em OK.

  7. No O Assistente para personalização do SharePoint, digite a URL do site que você deseja usar para depuração.

  8. Em o que é o nível de confiança para essa solução do SharePoint, clique em Deploy como uma solução do farm.

    ObservaçãoObservação

    A etapa de implantação de atualização não oferece suporte a soluções em modo seguro.

  9. Clique em Next.

  10. No Escolher configurações de definição de lista página em o que é o nome de exibição da definição da lista?, tipo de A lista de funcionários.

  11. Em o que é o tipo de definição de lista?, selecione contatos.

  12. Certifique-se de que o Adicionar uma instância de lista para a definição de lista caixa de seleção está marcada.

  13. Clique em Finish.

    Visual Studio cria o projeto e abre o arquivo elements XML para a definição de lista no editor.

  14. Em Solution Explorer, com o botão direito do EmployeesListDefinition no nó do projeto e clique em Propriedades.

  15. No SharePoint guia das propriedades do projeto, limpar o de Auto-retração após a depuração caixa de seleção.

  16. Em Solution Explorer, expanda o ListDefinition1 o nó e expanda o filho ListInstance1 nó.

  17. Duas vezes no arquivo de elements é um filho do ListInstance1 nó. O arquivo elements abre no editor.

  18. Substitua o padrão XML desse arquivo com o seguinte XML. Esse XML altera o nome da lista para os funcionários. Ele também adiciona um item para um funcionário chamado Jim Hance.

    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="https://schemas.microsoft.com/sharepoint/">
      <ListInstance Title="Employees"
                    OnQuickLaunch="TRUE"
                    TemplateType="10000"
                    Url="Lists/Employees"
                    Description="Simple list to test upgrade deployment step">
        <Data>
          <Rows>
            <Row>
              <Field Name="Title">Hance</Field>
              <Field Name="FirstName">Jim</Field>
              <Field Name="Company">Contoso</Field>
            </Row>
          </Rows>
        </Data>
      </ListInstance>
    </Elements>
    

Para implantar a definição de lista e a instância de lista

  1. Em Solution Explorer, clique na EmployeesListDefinition no nó do projeto.

  2. No Propriedades janela, certifique-se de que o Configuração de implantação Active propriedade estiver definida como padrão.

  3. Pressione F5.

  4. Verificar que o projeto é compilado com êxito, que o site do SharePoint é aberta para o novo os funcionários lista e a lista inclui uma entrada para Jim Hance.

  5. Feche o navegador da Web.

Para modificar a definição de lista e a instância de lista e reimplantá-las

  1. No projeto EmployeesListDefinition, clique duas vezes no arquivo elements que é filho de ListInstance1 o item de projeto.

  2. Remover o Data elemento e seus filhos para remover a entrada de Jim Hance da lista. Quando tiver terminado, o arquivo deve conter o seguinte XML.

    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="https://schemas.microsoft.com/sharepoint/">
      <ListInstance Title="Employees"
                    OnQuickLaunch="TRUE"
                    TemplateType="10000"
                    Url="Lists/Employees"
                    Description="Simple list to test upgrade deployment step">
      </ListInstance>
    </Elements>
    
  3. Duas vezes no arquivo Schema. XML que é filho de ListDefinition1 o item de projeto.

  4. Pesquisa nesse arquivo para a seqüência de BaseViewID="1". Essa seqüência é um atributo para um View elemento que você modificará na próxima etapas.

  5. Sob esta View elemento, localize o filho ViewFields elemento.

  6. Sob o ViewFields elemento, remova os dois filhos FieldRef elementos que possuem o Name atributo definido como Attachments e HomePhone. Essa ação remove esses campos do modo de exibição padrão do os funcionários a lista no site do SharePoint. Quando tiver terminado, o ViewFields elemento deve ter o conteúdo a seguir.

    <ViewFields>
      <FieldRef Name="LinkTitle" />
      <FieldRef Name="FirstName" />
      <FieldRef Name="Company" />
      <FieldRef Name="WorkPhone" />
      <FieldRef Name="Email" />
    </ViewFields>
    
  7. Pressione F5. Verifique o Conflitos de implantação caixa de diálogo aparece. Esta caixa de diálogo aparece quando o Visual Studio tenta implantar uma solução (a instância de lista) para um site do SharePoint que já tem essa solução implantada.

    Posteriormente neste passo a passo, você irá notar que a caixa de diálogo não aparece quando você executar a etapa de implantação de atualização.

  8. Clique em resolver automaticamente. Visual Studio exclui a instância de lista no site do SharePoint, implanta o item de lista do projeto e, em seguida, abre o site do SharePoint para o os funcionários lista.

  9. Verifique se os seguintes detalhes:

    • O anexos e Telefone residencial colunas não aparecem neste modo de exibição da lista.

    • Agora, a lista está vazia. Quando usado o padrão a configuração de implantação para reimplantar a solução, o funcionários lista foi substituída com a nova lista vazia no seu projeto.

A etapa de implantação de teste.

Agora você está pronto para testar a etapa de implantação de atualização. Primeiro, adicione um item para a instância de lista no SharePoint. Em seguida, altere a definição de lista e a instância de lista e, em seguida, atualizá-los no site do SharePoint para confirmar que a etapa de implantação de atualização não substitui o novo item.

Para adicionar manualmente um item à lista

  1. Na faixa de opções no site do SharePoint, clique no itens guia.

  2. No nova de grupo, clique em Novo Item.

  3. No Último nome , digite Ruth.

  4. No nome , digite Andy.

  5. No empresa , digite Contoso.

  6. Clique em Save. Verifique se o novo item aparece na lista. Posteriormente nesta explicação passo a passo, você irá usar este item para verificar que a etapa de implantação de atualização não substitui o conteúdo desta lista.

  7. Feche o navegador da Web.

Para testar a etapa de implantação de atualização

  1. Na instância experimental do Visual Studio, em Solution Explorer, clique na EmployeesListDefinition no nó do projeto.

  2. No Propriedades janela, defina a Configuração de implantação Active propriedade para Upgrade. Esta é a configuração de implantação personalizada que inclui a nova etapa de implantação de atualização.

  3. Duas vezes no arquivo Schema. XML que é filho de ListDefinition1 o item de projeto.

  4. Localize o ViewFields o elemento que você modificou anteriormente.

  5. Sob o ViewFields elemento, remova os dois filhos FieldRef elementos que possuem o Name atributo definido como WorkPhone e Email. Essa ação remove esses campos do modo de exibição padrão do os funcionários a lista no site do SharePoint. Quando tiver terminado, o ViewFields elemento deve ter o conteúdo a seguir.

    <ViewFields>
      <FieldRef Name="LinkTitle" />
      <FieldRef Name="FirstName" />
      <FieldRef Name="Company" />
    </ViewFields>
    
  6. Pressione F5. Verificar que o código na instância de Visual Studio pára no ponto de interrupção que você definiu anteriormente na CanExecute método.

  7. Pressione F5 novamente. Verificar que o código pára no ponto de interrupção que você definiu anteriormente na Execute método.

  8. Pressione F5 uma última vez. O site do SharePoint para o os funcionários lista.

  9. Na área Inicialização rápida, clique no os funcionários lista.

  10. Verifique se os seguintes detalhes:

    • O Andy Ruth item manualmente adicionado anteriormente ainda está em lista.

    • O Telefone comercial e Endereço de email colunas não são exibidas neste modo de exibição da lista.

    O Upgrade a configuração de implantação modifica o existente funcionários a ocorrência de list no site do SharePoint. Se você usou o padrão configuração de implantação em vez da Upgrade configuração, você poderia encontrar um conflito de implantação. Visual Studio resolveria o conflito, substituindo o os funcionários lista e o Andy Ruth item será excluído.

Limpando o computador de desenvolvimento

Após concluir o teste a etapa de implantação de atualização, remova a instância de lista e a definição de lista do site do SharePoint e remova a extensão da etapa de implantação de Visual Studio.

Para remover a instância de lista do site do SharePoint

  1. Abra o os funcionários lista no site do SharePoint, se ele já não estiver aberto.

  2. Na faixa de opções no site do SharePoint, clique no lista guia.

  3. No lista tab, o configurações de grupo, clique em As configurações da lista.

  4. Em permissões e gerenciamento, clique em Excluir esta lista de. Clique em OK para confirmar que você deseja enviar a lista para a Lixeira.

  5. Feche o navegador da Web.

Para remover a definição de lista do site do SharePoint

  • Na instância experimental do Visual Studio, sobre o Build menu, selecione Retract.

    Visual Studio cancela a definição de lista do site do SharePoint.

Para desinstalar a extensão.

  1. Na instância experimental do Visual Studio, sobre o Ferramentas menu, clique em Extension Manager.

    O Extension Manager abre a caixa de diálogo.

  2. Na lista de extensões, clique em Etapa de implantação para projetos do SharePointe em seguida, clique em desinstalar.

  3. Na caixa de diálogo que aparece, clique em Sim para confirmar que você deseja desinstalar a extensão.

  4. Clique em Reiniciar agora para concluir a desinstalação.

  5. Feche as duas instâncias de Visual Studio (a instância experimental e a instância do Visual Studio que abriu a solução de UpgradeDeploymentStep).

Consulte também

Outros recursos

Implantação e estendendo empacotamento do SharePoint