Passo a passo: Criando uma etapa de implantação personalizado para projetos do SharePoint
Quando você implantar um projeto do SharePoint, o Visual Studio executa uma série de etapas de implantação em uma ordem específica.O Visual Studio inclui várias etapas internos de implantação, mas você também pode criar seus próprios.
Em essa explicação passo a passo, você criará uma etapa personalizada de implantação para atualizar soluções em um servidor que esteja executando o SharePoint.O Visual Studio inclui etapas internos de implantação para muitas tarefas, tais soluções de retraimanto ou adicionando, mas não inclui uma etapa de implantação para atualizar soluções.Por padrão, quando você implantar uma solução do SharePoint, o Visual Studio retrai primeiro a solução (se é implantado já) e reimplantar na solução inteira.Para obter mais informações sobre etapas internos de implantação, consulte Implantando, publicando e atualizando pacotes de solução do SharePoint.
Essa explicação passo a passo demonstra as seguintes tarefas:
Criando uma extensão do Visual Studio que executa duas tarefas principais:
A extensão define uma etapa personalizada de implantação para atualizar soluções do SharePoint.
A extensão cria uma extensão de projeto que define uma nova configuração de implantação, que é um conjunto de etapas de implantação que são executadas para um determinado projeto.A nova configuração de implantação inclui a etapa personalizada de implantação e várias etapas internos de implantação.
Criando dois comandos personalizados do SharePoint que o assembly de extensão chama.Os comandos do SharePoint são métodos que podem ser chamados por assemblies de extensão para usar APIs no modelo de objeto do servidor para o SharePoint.Para obter mais informações, consulte A chamada para os modelos de objeto do SharePoint.
Criando um pacote de extensão (Visual Studio) VSIX para implantar ambos os assemblies.
Testando a nova etapa de implantação.
Pré-requisitos
Você precisa dos seguintes componentes no computador de desenvolvimento de concluir este explicação passo a passo:
Edições suportadas do windows, do SharePoint, e do Visual Studio.Para obter mais informações, consulte Requisitos para o desenvolvimento de soluções do SharePoint.
O Visual Studio SDK.Essa explicação passo a passo usa o modelo de projeto de VSIX no SDK para criar um conjunto de VSIX para implantar a extensão.Para obter mais informações, consulte Estender as ferramentas do SharePoint em Visual Studio.
Conhecer os seguintes conceitos é útil, mas não necessário, concluir a explicação passo a passo:
Usando o modelo de objeto do servidor para o SharePoint.Para obter mais informações, consulte Usando o modelo de objeto do Lado de base do SharePoint.
Soluções do SharePoint.Para obter mais informações, consulte Visão geral das soluções.
Soluções do SharePoint de atualização.Para obter mais informações, consulte atualizando uma solução.
Criando projetos
Para concluir esta explicação passo-a-passo, você deve criar três projetos:
Um projeto de VSIX criar o conjunto de VSIX para implantar a extensão.
Um projeto de biblioteca de classe que implementa a extensão.Este projeto deve selecionar o .NET Framework 4,5.
Um projeto de biblioteca de classe que define o SharePoint personalizado de comandos.Este projeto deve selecionar o .NET Framework 3,5.
Inicie o passo-a-passo criando projetos.
Para criar o projeto VSIX
Inicie o Visual Studio
Em a barra de menu, escolha Arquivo, Novo, Projeto.
Em a caixa de diálogo de Novo Projeto , expanda os nós de Visual C# ou de Visual Basic , e então escolha o nó de Extensibilidade .
Observação O nó de Extensibilidade está disponível somente se você instalar o Visual Studio SDK.Para obter mais informações, consulte a seção de pré-requisito anteriormente em este tópico.
Em a parte superior da caixa de diálogo, escolha o .NET Framework 4,5 na lista de versões do .NET Framework.
Escolha o modelo de projeto de VSIX , nomeie o projeto UpgradeDeploymentStep, e então escolha o botão de OK .
Visual Studio adiciona o projeto de UpgradeDeploymentStep a Gerenciador de Soluções.
Para criar o projeto de extensão
Em Gerenciador de Soluções, abra o menu de atalho para o nó da solução de UpgradeDeploymentStep Adicionar, escolha, e escolha Novo Projeto.
Observação Em projetos Visual Basic, o nó da solução aparece em Gerenciador de Soluções somente quando a caixa de seleção de Sempre mostrar solução está selecionada em General, Projects and Solutions, Options Dialog Box.
Em a caixa de diálogo de Novo Projeto , expanda os nós de Visual C# ou de Visual Basic , e então escolha o nó de Janelas .
Em a parte superior da caixa de diálogo, escolha o .NET Framework 4,5 na lista de versões do .NET Framework.
Escolha o modelo de projeto de Biblioteca de Classes , nomeie o projeto DeploymentStepExtension, e então escolha o botão de OK .
Visual Studio adiciona o projeto de DeploymentStepExtension a solução e abre o arquivo de código Class1 de opção.
Exclua o arquivo de código Class1 do projeto.
Para criar o projeto de comando do SharePoint
Em Gerenciador de Soluções, abra o menu de atalho para o nó da solução de UpgradeDeploymentStep Adicionar, escolha, e escolha Novo Projeto.
Observação Em projetos Visual Basic, o nó da solução aparece apenas em Gerenciador de Soluções quando a caixa de seleção de Sempre mostrar solução está selecionada em General, Projects and Solutions, Options Dialog Box.
Em a caixa de diálogo de Novo Projeto , expanda Visual C# ou Visual Basic, e então escolha o nó de Janelas .
Em a parte superior da caixa de diálogo, escolha o .NET Framework 3,5 na lista de versões do .NET Framework.
Escolha o modelo de projeto de Biblioteca de Classes , nomeie o projeto SharePointCommands, e então escolha o botão de OK .
O Visual Studio adiciona o projeto de SharePointCommands a solução e abre o arquivo de código Class1 de opção.
Exclua o arquivo de código Class1 do projeto.
Configurando projetos
Antes que você escreva código para criar a etapa personalizada de implantação, você deve adicionar arquivos de código e referências assembly, e você deve configurar projetos.
para configurar o projeto de DeploymentStepExtension
Em o projeto de DeploymentStepExtension , adicione dois arquivos de código que possuem os seguintes nomes:
UpgradeStep
DeploymentConfigurationExtension
Abra o menu de atalho no projeto de DeploymentStepExtension, e então escolha Adicionar Referência.
Em a guia de estrutura , selecione a caixa de seleção para o assembly de System.ComponentModel.Composition.
Em a guia de Extensões , selecione a caixa de seleção para o assembly de Microsoft.VisualStudio.SharePoint, e então escolha o botão de OK .
para configurar o projeto de SharePointCommands
Em o projeto de SharePointCommands , adicione um arquivo de código que é chamado Comando.
Em Gerenciador de Soluções, abra o menu de atalho no nó de projeto de SharePointCommands , e então escolha Adicionar Referência.
Em a guia de Extensões , marque as caixas de seleção para os seguintes conjuntos, escolha e clique no botão de OK
Microsoft.SharePoint
Microsoft.VisualStudio.SharePoint.Commands
Definindo a etapa personalizada de implantação
Crie uma classe que define a etapa de implantação de atualização.Para definir a etapa de implantação, a classe implementa a interface de IDeploymentStep .Implementar essa interface sempre que você deseja definir uma etapa personalizada de implantação.
Para definir a etapa personalizada de implantação
Em o projeto de DeploymentStepExtension , abra o arquivo de código de UpgradeStep, e então cole o seguinte código em ele.
Observação Após adicionar este código, compilar o projeto mandará alguns erros, mas partirão 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 personalizada de implantação
Crie uma extensão do projeto para a nova configuração de implantação, que inclui várias etapas internos de implantação e a nova etapa de implantação de atualização.Criando essa extensão, você ajuda os desenvolvedores do SharePoint para usar a etapa de implantação de atualização em projetos do SharePoint.
Para criar a configuração de implantação, a classe implementa a interface de ISharePointProjectExtension .Implementar essa interface sempre que você deseja criar uma extensão de projeto do SharePoint.
Para criar a configuração de implantação
Em o projeto de DeploymentStepExtension , abra o arquivo de código de DeploymentConfigurationExtension, e então cole o seguinte código em ele.
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 comandos personalizados do SharePoint
Crie dois comandos personalizados que chamam no modelo de objeto do servidor para o SharePoint.Um comando determina se uma solução já está implantado; o outro comando atualiza uma solução.
Para definir comandos do SharePoint
Em o projeto de SharePointCommands , abra o arquivo de código de comandos, e então cole o seguinte código em ele.
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
Em esse ponto do passo-a-passo, todo o código para a etapa personalizada de implantação e comandos do SharePoint agora estão em projetos.Criá-los para certificar-se que compilam sem erros.
para compilar os projetos
Em Gerenciador de Soluções, abra o menu de atalho para o projeto de DeploymentStepExtension , e então escolha Compilar.
Abra o menu de atalho para o projeto de SharePointCommands , e então escolha Compilar.
Criando um conjunto de VSIX para implantar a extensão
Para implantar a extensão, use o projeto de VSIX em sua solução criar um conjunto de VSIX.Primeiro, configure o conjunto de VSIX modificando o arquivo de source.extension.vsixmanifest no projeto de VSIX.Crie o conjunto de VSIX criando a solução.
Para configurar e criar o conjunto de VSIX
Em Gerenciador de Soluções, no projeto de UpgradeDeploymentStep , abra o menu de atalho para o arquivo de source.extension.vsixmanifest , e então escolha Abrir.
O Visual Studio abre o arquivo no editor manifesto.O arquivo de source.extension.vsixmanifest é a base para o arquivo de extension.vsixmanifest que quaisquer pacotes de VSIX exigem.Para obter mais informações sobre este arquivo, consulte Referência de esquema de extensão VSIX.
Em a caixa de Nome do produto , entre em A etapa de implantação de atualização para projetos do SharePoint.
Em a caixa de Autor , entre em Contoso.
Em a caixa de Descrição , entre em Fornece uma etapa personalizada de implantação de atualização que pode ser usada em projetos do SharePoint.
Em a guia de Ativos do editor, escolha o botão de Novo .
a caixa de diálogo de adicionar o novo recurso aparece.
Em a lista de Tipo , escolha Microsoft.VisualStudio.MefComponent.
Observação Esse valor corresponde ao elemento de MefComponent no arquivo de extension.vsixmanifest.Esse elemento especifica o nome de um assembly de extensão no conjunto de VSIX.Para obter mais informações, consulte MEFComponent Element.
Em a lista de Origem , escolha Um projeto na solução atual.
Em a lista de Projeto , escolha, e escolha DeploymentStepExtensionno botão de OK .
Em o editor manifesto, escolha o botão de Novo novamente.
a caixa de diálogo de adicionar o novo recurso aparece.
Em a lista de Tipo , entre em SharePoint.Commands.v4.
Observação Esse elemento especifica uma extensão personalizada que você deseja incluir na extensão do Visual Studio.Para obter mais informações, consulte Elemento de ativos (esquema VSX).
Em a lista de Origem , escolha Um projeto na solução atual.
Em a lista de Projeto , escolha, e escolha SharePointCommandsno botão de OK .
Em a barra de menu, escolha Compilar, Compilar solução, e então certifique-se de que a solução compila sem erros.
Certifique-se de que a pasta de saída de compilação para o projeto de UpgradeDeploymentStep agora contém o arquivo de UpgradeDeploymentStep.vsix.
Por padrão, a pasta de saída de compilação é.\ bin \ debug de sob a pasta que contém o arquivo de projeto.
Preparação testar a etapa de implantação de atualização
Para testar a etapa de implantação de atualização, primeiro você deve implantar uma solução de exemplo para o site do SharePoint.Inicie depurando a extensão na instância de avaliação do Visual Studio.Então crie uma definição de lista e listar a instância para usar para testar a etapa de implantação, e então implanta para o site do SharePoint.Em seguida, modifica a definição da lista e lista a instância e reimplantar-los para demonstrar como o processo padrão de implantação substitui soluções no site do SharePoint.
Posteriormente em esta explicação passo a passo, você irá alterar a definição da lista e a instância da lista e em seguida, você atualizará no site do SharePoint.
Para iniciar a depuração da extensão
Reinicie o Visual Studio com credenciais administrativas, e abra a solução de UpgradeDeploymentStep.
Em o projeto de DeploymentStepExtension, abra o arquivo de código de UpgradeStep, e adicione um ponto de interrupção na primeira linha de código em métodos de CanExecute e de Execute .
Iniciar a depuração escolhendo a tecla F5 ou, na barra de menus, escolhendo Depurar, Iniciar Depuração.
O Visual Studio instala a extensão em %UserProfile%\AppData\Local\Microsoft\VisualStudio\11.0Exp\Extensions\Contoso\Upgrade Deployment Step for SharePoint Projects\1.0 e inicia uma instância de avaliação do Visual Studio.Você irá testar a etapa de implantação de atualização em esse caso do Visual Studio.
Para criar um projeto do SharePoint com uma definição de lista e uma lista como métodos de exemplo
Em a instância de avaliação do Visual Studio, na barra de menu, escolha Arquivo, Novo, Projeto.
Em a caixa de diálogo de Novo Projeto , expanda o nó de Visual C# ou o nó de Visual Basic , expanda o nó de SharePoint , e então escolha o nó de 2010 .
Em a parte superior da caixa de diálogo, certifique-se de que o .NET Framework 3,5 aparece na lista de versões do .NET Framework.
Os projetos para Microsoft SharePoint Foundation 2010 e Microsoft SharePoint Server 2010 exigem esta versão do .NET Framework.
Em a lista de modelos de projeto, escolha Projeto do SharePoint 2010, nomeie o projeto EmployeesListDefinition, e então escolha o botão de OK .
Em Assistente de personalização do SharePoint, digite o URL do site que você deseja usar para depurar.
Em O que é o nível de confiança para esta solução do SharePoint, escolha o botão de opção de Implantar como uma solução de farm .
Observação A etapa de implantação de atualização não suporta soluções na área restrita.
Escolha o botão de Concluir .
Visual Studio criar o projeto de EmployeesListDefinition.
Abra o menu de atalho para o projeto de EmployeesListDefinition Adicionar, escolha, e escolha Novo Item.
Em a caixa de diálogo de adicionar o novo item – EmployeesListDefinition , expanda o nó de SharePoint , e então escolha o nó de 2010 .
Escolha o modelo de item de Lista , nomeie o item Lista de funcionários, e então escolha o botão de Adicionar .
O assistente de personalização do SharePoint aparece
Em a página de Escolha as configurações de lista , verifique as seguintes configurações, escolha e no botão de Concluir :
Lista de funcionários aparece na caixa de Nome que você deseja exibir para sua lista? .
O botão de opção de Crie uma lista personalizável baseado em: é escolhida.
Opção (em branco) é escolhido na lista de Crie uma lista personalizável baseado em: .
Visual Studio cria o item de lista de funcionários com uma coluna de título e um único vazia a instância e abre o designer da lista.
Em o designer da lista, na guia de Colunas , escolha a linha de Digite um novo nome da coluna ou existente , e então adicione as seguintes colunas na lista de Nome para exibição de coluna :
Nome
Empresa
Telefone de negócio
email
Salve todos os arquivos, e então feche o designer da lista.
Em Gerenciador de Soluções, expanda o nó de Lista de funcionários em seguida, expanda o nó filho de Instância da lista de funcionários .
Em o arquivo de Elements.xml, substitua XML padrão no arquivo com o seguinte XML.Este XML altera o nome da lista Funcionários e adiciona informações de um funcionário que nomeie 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> <Field Name="Business Phone">555-555-5555</Field> <Field Name="E-Mail">jim@contoso.com</Field> </Row> </Rows> </Data> </ListInstance> </Elements>
Salve e feche o arquivo de Elements.xml.
Abra o menu de atalho para o projeto de EmployeesListDefinition, e então escolha Abrir ou Propriedades.
O designer das propriedades abre.
Em a guia de SharePoint , desmarque a caixa de seleção de automática retraia após depuração , e então salve as propriedades.
Para implantar a definição da lista e a lista como métodos de exemplo
Em Gerenciador de Soluções, escolha o nó de projeto de EmployeesListDefinition .
Em a janela de Propriedades , certifique-se de que a propriedade de Configuração ativa de implantação é definida como Padrão.
Escolha a tecla F5 ou, na barra de menu, escolha Depurar, Iniciar Depuração.
Verifique se o projeto compila com êxito, que navegador da web é aberto para o site do SharePoint, o item de Listas na barra rápida de abertura inclui a nova lista de Funcionários , e que a lista de Funcionários inclui entrada para Jim Hance.
Feche o navegador da web.
Para alterar a definição da lista e a lista cite-os como exemplo e reimplantar-l
Em o projeto de EmployeesListDefinition, abra o arquivo de Elements.xml que é um filho do item de projeto de Instância da lista de funcionários .
Remova o elemento de Data e seus filhos para remover a entrada para Jim Hance da lista.
Quando você terminar, 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>
Salve e feche o arquivo de Elements.xml.
Abra o menu de atalho para o item de projeto de Lista de funcionários , e então escolha Abrir ou Propriedades.
Em o designer da lista, escolha a guia de Modos de exibição .
Na lista Colunas Selecionadas, escolha Anexos, e escolha a tecla < para mover essa coluna para a lista Colunas disponíveis.
Repita a etapa anterior para mover a coluna de Telefone comercial da lista de Colunas Selecionadas à lista de Colunas disponíveis .
Esta ação remover esses campos de exibição padrão da lista de Funcionários no site do SharePoint.
Iniciar a depuração escolhendo a tecla F5 ou, na barra de menus, escolhendo Depurar, Iniciar Depuração.
Verifique se a caixa de diálogo de Conflitos de implantação aparece.
Esta caixa de diálogo aparece quando o Visual Studio tenta implementar uma solução (instância de lista) a um site web do SharePoint para a solução que já tenha sido implantado.Esta caixa de diálogo não aparecerá quando você executa a etapa de implantação de atualização posteriormente em este passo-a-passo.
Em a caixa de diálogo de Conflitos de implantação , escolha o botão de opção de resolução automaticamente .
O Visual Studio exclui a instância da lista no site do SharePoint, implantar o item da lista no projeto, e abre no site da web do SharePoint.
Em a seção de Listas de barra rápida de inicialização, escolha a lista de Funcionários , e verificar a seguir detalha:
As colunas de Anexos e de Telefone residencial não aparecem em esta exibição de lista.
A lista está vazia.Quando você usou a configuração de implantação de Padrão para da solução, a lista de Funcionários foi substituída pela nova vazia a lista em seu projeto.
Testando a etapa de implantação
Você agora está pronto para testar a etapa de implantação de atualização.Primeiro, adicionar um item à instância da lista no SharePoint.Então modificar a definição da lista e listar a instância, gerados no site do SharePoint, e confirme que você que a etapa de implantação de atualização não substitui o novo item.
Para adicionar manualmente um item à lista
Em fita no site do SharePoint, na guia de Ferramentas de Lista , escolha a guia de Itens .
Em o grupo de Novo , escolha Novo Item.
Como alternativa, você pode escolher o link na lista de item de Adicionar novo item próprio.
Em a janela de funcionários – novo item , na caixa de Título , entre em Gerenciador de recursos.
Em a caixa de Nome , entre em Andy.
Em a caixa de Empresa , digite Contoso.
Escolha o botão de Salvar , verifique se o novo item aparece na lista, e feche o navegador da web.
Posteriormente em esta explicação passo a passo, você usará este item para verificar que a etapa de implantação de atualização não substitua o conteúdo da lista.
Para testar a etapa de implantação de atualização
Em a instância de avaliação do Visual Studio, em Gerenciador de Soluções, abra o menu de atalho para o nó de projeto de EmployeesListDefinition , e então escolha Propriedades.
O editor/designer das propriedades abre.
Em a guia de SharePoint , defina a propriedade de Configuração ativa de implantação a Atualizar.
Esta configuração personalizada de implantação inclui a nova etapa de implantação de atualização.
Abra o menu de atalho para o item de projeto de Lista de funcionários , e então escolha Propriedades ou Abrir.
O editor/designer das propriedades abre.
Em a guia de Modos de exibição , escolha a coluna de Email , e escolha a chave de < para mover que a lista de Colunas Selecionadas à lista de Colunas disponíveis .
Esta ação remover esses campos de exibição padrão da lista de Funcionários no site do SharePoint.
Iniciar a depuração escolhendo a tecla F5 ou, na barra de menus, escolhendo Depurar, Iniciar Depuração.
Verifique se o código em outra instância do Visual Studio pára no ponto de interrupção que anteriormente definido no método de CanExecute .
Escolha a tecla F5 novamente, ou na barra de menu, escolha Depurar, Continuar.
Verifique se o código pára no ponto de interrupção que anteriormente definido no método de Execute .
Escolha a tecla F5 ou, na barra de menu, escolha Depurar, Continuar um tempo final.
Navegador da web abrir o site do SharePoint.
Em a seção de Listas da área de lançamento rápido, escolha a lista de Funcionários , e verificar a seguir detalha:
O item que você adicionou manualmente anteriormente (para Andy, gerenciador de recursos) ainda está na lista.
As colunas de Telefone comercial e de Endereço de email não aparecem em esta exibição de lista.
A configuração de implantação de Atualizar altera a instância existente da lista de Funcionários no site do SharePoint.Se você usou a configuração de implantação de Padrão em vez de configuração de Atualizar , você encontraria um conflito de implantação.O Visual Studio resolverá o conflito substituindo a lista de Funcionários , e o item para Andy, gerenciador de recursos, seria excluído.
Limpando o computador de desenvolvimento
Depois que você concluir testar a etapa de implantação de atualização, remova a definição da instância da lista e da lista de site web do SharePoint e, remova a extensão da etapa de implantação do Visual Studio.
Para remover a lista métodos como exemplo de site web do SharePoint
Abra a lista de Funcionários no site do SharePoint, se a lista não estiver aberta.
Em fita no site do SharePoint, escolha a guia de Ferramentas de Lista , e escolha na guia de Lista .
Em o grupo de Configurações , escolha o item de Configurações da lista .
Em Permissões e Gerenciamento, escolha o comando de Excluir essa lista , escolha OK para confirmar que você deseja enviar a lista para a recycle bin, e fechar o navegador da web.
Para remover a definição da lista de site web do SharePoint
Em a instância de avaliação do Visual Studio, na barra de menu, escolha Compilar, retraia.
O Visual Studio retrai a definição da lista de site web do SharePoint.
para desinstalar a extensão
Em a instância de avaliação do Visual Studio, na barra de menu, escolha Ferramentas, Extensões e Atualizações.
a caixa de diálogo de Extensões e Atualizações abre.
Em a lista de extensões A etapa de implantação de atualização para projetos do SharePoint, escolha, e escolha o comando de Desinstalar .
Em a caixa de diálogo que aparece, escolha Sim para confirmar que você deseja desinstalar a extensão, e então escolha Reiniciar Agora para concluir a desinstalação.
Feche as duas instâncias do Visual Studio (a instância de avaliação e instância do Visual Studio em que a solução de UpgradeDeploymentStep estiver aberta.)