Поделиться через


Пошаговое руководство. Создание пользовательского шага развертывания для проектов SharePoint

При развертывании проекта SharePoint Visual Studio выполняет последовательность шагов развертывания в определенном порядке.Visual Studio включает множество встроенных шагов развертывания, однако можно создавать и собственные шаги.

В этом пошаговом руководстве описывается создание пользовательского шага развертывания для обновления решений на сервере с SharePoint.Visual Studio включает встроенные шаги развертывания для различных задач, таких втягивая или добавления решений, но оно не включает в себя шага развертывания для обновления решений.По умолчанию при развертывании решения SharePoint Visual Studio сначала отозвать решение (если она еще развертыватьо), а затем redeploys все решение.Дополнительные сведения о встроенных шагах процедуры развертывания см. в разделе Развертывание, публикация и обновление пакетов решений SharePoint.

В этом пошаговом руководстве показано выполнение следующих задач.

  • Создание расширения Visual Studio для выполнения двух основных задач:

    • Расширение определяет пользовательский шаг развертывания для обновления решений SharePoint.

    • Расширение создает расширение проекта, указывающее новую конфигурацию развертывания, которая набор шагов развертывания, исполнены для данного проекта.Новая конфигурация развертывания включает пользовательский шаг развертывания и несколько встроенных шагов развертывания.

  • Создание настраиваемых команд SharePoint 2, которая вызывает сборку модуля.Команды SharePoint методы, которые могут быть Вызываются сборок модуля для использования API объектной модели сервера для SharePoint.Дополнительные сведения см. в разделе Вызов объектных моделей SharePoint.

  • Построение пакета расширения Visual Studio (VSIX) для развертывания обеих сборок.

  • Тестирование нового шага развертывания.

Обязательные компоненты

Для выполнения данного пошагового руководства на компьютере разработчика должны быть установлены следующие компоненты:

Знание следующих подходов может оказаться полезным, но не требуется для выполнения пошагового руководства.

  • Использование объектной модели сервера для SharePoint.Дополнительные сведения см. в разделе Using the SharePoint Foundation Server-Side Object Model.

  • решения SharePoint.Дополнительные сведения см. в разделе Solutions Overview.

  • обновление решений SharePoint.Дополнительные сведения см. в разделе Upgrading a Solution.

Создание проектов

Чтобы выполнить это пошаговое руководство, необходимо создать project 3:

  • проект VSIX, который позволит создать пакет VSIX для развертывания расширения;

  • проект библиотеки классов, реализующий расширениеЭтот проект должен ПУСТО платформы .NET Framework 4,5.

  • проект библиотеки классов, определяющий пользовательские команды SharePointЭтот проект должен ПУСТО .NET Framework 3.5.

Начните выполнение пошагового руководства с создания проектов.

Создание проекта VSIX

  1. Запустите Visual Studio.

  2. В строке меню выберите Файл, Создать, Проект.

  3. В диалоговом окне Создать проект разверните узлы Visual C# или Visual Basic, а затем выберите узел Расширение среды.

    ПримечаниеПримечание

    Узел Расширение среды доступен, только если установить пакет SDK для Visual Studio.Дополнительные сведения см. в параграфе предварительных требований ранее в этом разделе.

  4. В верхней части диалогового окна, выберите платформа .NET Framework 4,5 в списке версий платформы .NET Framework.

  5. Выберите шаблон Проект VSIX, назовите проект UpgradeDeploymentStep, а затем нажмите кнопку ОК.

    Visual Studio добавит в Обозреватель решений проект UpgradeDeploymentStep.

Создание проекта расширения

  1. В Обозреватель решений открыть контекстное меню для узла решения UpgradeDeploymentStep выберите Добавить, а затем выберите Создать проект.

    ПримечаниеПримечание

    В проектах Visual Basic узел решения отображается в обозревателе решений, только если в диалоговом окне General, Projects and Solutions, Options Dialog Box установлен флажок Всегда показывать решение.

  2. В диалоговом окне Создать проект разверните узлы Visual C# или Visual Basic, а затем выберите узел Окна.

  3. В верхней части диалогового окна, выберите платформа .NET Framework 4,5 в списке версий платформы .NET Framework.

  4. Выберите шаблон проекта Библиотека классов, назовите проект DeploymentStepExtension, а затем нажмите кнопку ОК.

    Visual Studio добавит проект DeploymentStepExtension в решение и откроет заданный по умолчанию файл с кодом Class1.

  5. Удалите из проекта файл c кодом Class1.

Создание проекта команды SharePoint

  1. В Обозреватель решений открыть контекстное меню для узла решения UpgradeDeploymentStep выберите Добавить, а затем выберите Создать проект.

    ПримечаниеПримечание

    В проектах Visual Basic узел решения отображается в обозревателе решений, если в диалоговом окне General, Projects and Solutions, Options Dialog Box установлен флажок Всегда показывать решение.

  2. В диалоговом окне Создать проект разверните Visual C# или Visual Basic, а затем выберите узел Окна.

  3. В верхней части диалогового окна, выберите .NET Framework 3.5 в списке версий платформы .NET Framework.

  4. Выберите шаблон проекта Библиотека классов, назовите проект SharePointCommands, а затем нажмите кнопку ОК.

    Visual Studio добавит проект SharePointCommands в решение и откроет файл с кодом Class1 по умолчанию.

  5. Удалите из проекта файл c кодом Class1.

Настройка проектов

Перед разработкой кода для создания пользовательского шага развертывания необходимо добавить ссылки на файлы с кодом и на сборки, и необходимо настроить проекты.

Настройка проекта DeploymentStepExtension

  1. В проекте добавьте DeploymentStepExtension 2 файла с кодом, имеющие следующие имена:

    • UpgradeStep

    • DeploymentConfigurationExtension

  2. Открыть контекстное меню в проекте DeploymentStepExtension, а затем выберите Добавить ссылку.

  3. На вкладке Платформа установите флажок для сборки System.ComponentModel.Composition.

  4. На вкладке Расширения установите флажок для сборки Microsoft.VisualStudio.SharePoint, а затем нажмите кнопку ОК.

Настройка проекта SharePointCommands

  1. В проекте SharePointCommands добавьте файл кода с именем Командой.

  2. В Обозреватель решений открыть контекстное меню узла проекта SharePointCommands, а затем выберите Добавить ссылку.

  3. На вкладке Расширения установите флажки для следующих сборок, а затем нажмите кнопку ОК

    • Microsoft.SharePoint

    • Microsoft.VisualStudio.SharePoint.Commands

Определение пользовательского шага развертывания

Создайте класс, определяющий шаг развертывания обновления.Для определения шага развертывания класс реализует интерфейс IDeploymentStep.Этот интерфейс следует реализовывать всякий раз, когда требуется определить пользовательский шаг развертывания.

Определение пользовательского шага развертывания

  • В проекте DeploymentStepExtension, откройте файл с кодом UpgradeStep, а затем вставьте в нее следующий код.

    ПримечаниеПримечание

    После добавления этого кода, проект будет иметь некоторые компилировать ошибок, но они пойдут прочь при добавлении кода в последующих шагах.

    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);
            }
        }
    }
    

Создание конфигурации развертывания, включающей пользовательский шаг развертывания

Создание расширения проекта для новой конфигурации развертывания, которая включает несколько встроенных шагов развертывания и новый шаг развертывания обновления.Создание это расширение, помогаете разработчикам SharePoint использовать шаг развертывания обновления в проектах SharePoint.

Для создания конфигурации развертывания класс реализует интерфейс ISharePointProjectExtension.Этот интерфейс следует реализовывать всякий раз, когда требуется создать расширение проекта SharePoint.

Создание конфигурации развертывания

  1. В проекте DeploymentStepExtension, откройте файл с кодом DeploymentConfigurationExtension, а затем вставьте в нее следующий код.

    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";
            }
        }
    }
    

Создание настраиваемых команд SharePoint

Создание 2 пользовательских команд, осуществляющих вызовы в объектную модель сервера SharePoint.Одна команда определяет, развернуто ли решение; вторая обновляет решение.

Определение команд SharePoint

  • В проекте SharePointCommands, откройте файл кода команд, а затем вставьте в нее следующий код.

    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);
            }
        }
    }
    

Контрольная точка

На данный момент проекты содержат весь код пользовательского шага развертывания и команд SharePoint.Создайте их, чтобы убедиться, что они компилируют без ошибок.

Построение проектов

  1. В Обозреватель решений открыть контекстное меню для проекта DeploymentStepExtension, а затем выберите Построение.

  2. Открыть контекстное меню для проекта SharePointCommands, а затем выберите Построение.

Создание пакета VSIX для развертывания расширения

Для развертывания расширения воспользуйтесь проектом VSIX в своем решении для создания пакета VSIX.Сначала настроить пакет VSIX, изменив файл source.extension.vsixmanifest в проекте VSIX.Затем создайте пакет VSIX путем построения решения.

Настройка и создание пакета VSIX

  1. В Обозреватель решений под проектом UpgradeDeploymentStep открыть контекстное меню для файла source.extension.vsixmanifest, а затем выберите Открыть.

    Файл будет открыт Visual Studio в редакторе манифестов.Файл source.extension.vsixmanifest качестве основы для файла extension.vsixmanifest которого все пакеты VSIX.Дополнительные сведения об этом файле см. в разделе Справочник по схеме расширения VSIX.

  2. В окне Название продукта введите Шаг развертывания обновления проектов SharePoint.

  3. В окне Автор введите Contoso.

  4. В окне Описание введите Предоставляет пользовательский шаг развертывания обновления, который можно использовать в проектах SharePoint.

  5. На вкладке Активы редактор выберите кнопку Создать.

    Диалоговое окно Добавить новый актив.

  6. В списке Тип выберите Microsoft.VisualStudio.MefComponent.

    ПримечаниеПримечание

    Это значение соответствует элементу MefComponent, описанному в файле extension.vsixmanifest.Этот элемент задает имя сборки расширения в пакете VSIX.Дополнительные сведения см. в разделе MEFComponent Element.

  7. В списке Источник выберите Проект в текущем решении.

  8. В списке Проект выберите DeploymentStepExtension, а затем нажмите кнопку ОК.

  9. В редакторе манифестов, нажмите кнопку Создать попытку.

    Диалоговое окно Добавить новый актив.

  10. В списке Тип введите SharePoint.Commands.v4.

    ПримечаниеПримечание

    Этот элемент задает настраиваемое расширение, которое требуется включить в расширение Visual Studio.Дополнительные сведения см. в разделе элемент актива (схема VSX).

  11. В списке Источник выберите Проект в текущем решении.

  12. В списке Проект выберите SharePointCommands, а затем нажмите кнопку ОК.

  13. В строке меню выберите Построение, Построить решение и убедитесь, что решение будет компилироваться без ошибок.

  14. Убедитесь, что в выходную папку построения для проекта UpgradeDeploymentStep теперь содержит файл UpgradeDeploymentStep.vsix.

    По умолчанию выходной папкой построения является папка ..\bin\Debug, расположенная в папке, содержащей файл проекта.

Подготовка к тестирования шага развертывания обновления

Чтобы протестировать шаг развертывания обновления, необходимо предварительно развернуть пример решения на сайте SharePoint.Начните отладку расширения в экспериментальном экземпляре Visual Studio.Затем создание определения списка и экземпляра списка для использования тестирование шага развертывания, а затем развертывать их к сайту SharePoint.Далее измените определение списка и экземпляр списка и повторно развертывать для демонстрации отображения по умолчанию в процессе развертывания перезапишет решения на сайте SharePoint.

Далее в этом пошаговом руководстве вы измените определение списка и экземпляр списка, а затем обновить их на сайте SharePoint.

Запуск отладки расширения

  1. Перезапустите Visual Studio с учетными данными администратора, а затем откройте решение UpgradeDeploymentStep.

  2. В проекте DeploymentStepExtension откройте файл с кодом UpgradeStep, а затем добавьте точку останова на первой строке кода в методах CanExecute и Execute.

  3. Начать отладку путем выбора ключа F5 либо в строке меню, при выборе Отладка, Начать отладку.

  4. Visual Studio устанавливает расширения до %UserProfile% \ AppData \ local \ Microsoft \ VisualStudio \ 11.0Exp \ extensions \ Contoso \ шаг развертывания обновления для проектов SharePoint \ 1.0 и запускает экспериментальном экземпляре Visual Studio.Тестировании шаг развертывания обновления в данном экземпляре Visual Studio.

Чтобы создать проект SharePoint с определением списка и списком приведите в пример

  1. В экспериментальном экземпляре Visual Studio в строке меню выберите Файл, Создать, Проект.

  2. В диалоговом окне Создать проект разверните узел Visual C# или узел Visual Basic разверните узел SharePoint, а затем выберите узел 2010.

  3. В верхней части диалогового окна, убедитесь, что .NET Framework 3.5 отображается в списке версий платформы .NET Framework.

    Для проектов Microsoft SharePoint Foundation 2010 и Microsoft SharePoint Server 2010требуется эта версия .NET Framework.

  4. В списке шаблонов проектов выберите Проект SharePoint 2010, назовите проект EmployeesListDefinition, а затем нажмите кнопку ОК.

  5. В Мастер настройки SharePoint введите URL-адрес сайта, который необходимо использовать для отладки.

  6. В Уровень доверия для этого решения SharePoint выберите переключатель Развернуть как решение фермы.

    ПримечаниеПримечание

    Шаг развертывания обновления не поддерживает изолированные решения.

  7. Нажмите кнопку Готово.

    Visual Studio создает в проекте EmployeesListDefinition.

  8. Открыть контекстное меню для проекта EmployeesListDefinition выберите Добавить, а затем выберите Создать элемент.

  9. В диалоговом окне добавьте новый элемент – EmployeesListDefinition разверните узел SharePoint, а затем выберите узел 2010.

  10. Выберите шаблон элемента Список, назовите элемент список сотрудников, а затем нажмите кнопку Добавить.

    Появится окно мастер настройки SharePoint

  11. На странице Выберите параметры списка, проверьте следующие параметры, а затем нажмите кнопку Готово:

    1. список сотрудников отображается в окне Какое имя списка должно отображаться?.

    2. Переключатель Создать настраиваемый список на основе on: выбора.

    3. Значение по умолчанию (пусто) выбратьо в списке Создать настраиваемый список на основе on:.

    Visual Studio создает элемент списка сотрудников со столбцом заголовка и один экземпляр пуст и открытие конструктора списка.

  12. В конструкторе списка на вкладке Столбцы выберите строку Введите имя нового или существующего столбца, а затем добавьте следующие столбцы в списке Отображаемое имя столбца:

    1. Имя

    2. Компания

    3. Рабочий телефон

    4. Электронная почта

  13. Сохраните все файлы, а затем закройте конструктор списка.

  14. В Обозреватель решений разверните узел список сотрудников, а затем разверните дочерний узел экземпляр списка сотрудников.

  15. В файле Elements.xml, замените XML по умолчанию в этом файле следующим XML-кодом.Этот XML-код изменяет имя списка в сотрудники и добавляет сведения о сотрудниках, называл Джим 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>
    
  16. Сохраните файл и закройте файл Elements.xml.

  17. Открыть контекстное меню в проекте EmployeesListDefinition, а затем выберите Открыть или Свойства.

    Открытие конструктора свойств.

  18. На вкладке SharePoint, снимите флажок Автоматически отозвать после отладки, а затем сохраните свойства.

Развертывание определения списка и экземпляра списка

  1. В Обозреватель решений выберите узел проекта EmployeesListDefinition.

  2. В окне Свойства убедитесь, что свойство Active Deployment Configuration имеет значение Default.

  3. Выберите ключ F5 либо в строке меню выберите Отладка, Начать отладку.

  4. Убедитесь, что построение проекта успешно, что к сайту SharePoint будет открыт обозреватель Интернета, что элемент Списки на панели быстрого запуска включает новый список сотрудники и что список сотрудники включает запись, Джима Hance.

  5. Закройте Интернет-браузер.

Изменение определения списка и экземпляра списка и их повторное развертывание

  1. В проекте EmployeesListDefinition, откройте файл Elements.xml, который является дочерним элементом элемента проекта Экземпляр списка сотрудников.

  2. Удалите элемент Data и его дочерние элементы, чтобы удалить из списка запись для Jim Hance.

    Завершив файл должен содержать следующий 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. Сохраните файл и закройте файл Elements.xml.

  4. Открыть контекстное меню для элемента проекта список сотрудников, а затем выберите Открыть или Свойства.

  5. В конструкторе списка выберите вкладку Представления.

  6. В списке Выбранные столбцы выберите Вложения, а затем выберите < ключ, который требуется переместить, что столбец в список Доступные столбцы.

  7. Повторяющиеся предыдущий шаг, чтобы переместить столбец Служебный телефон из списка Выбранные столбцы в список Доступные столбцы.

    Это действие удалит данные поля из представления по умолчанию списка Сотрудники на сайте SharePoint.

  8. Начать отладку путем выбора ключа F5 либо в строке меню, при выборе Отладка, Начать отладку.

  9. Проверьте, что появляется диалоговое окно Конфликты развертывания.

    Это диалоговое окно появляется, когда Visual Studio пытается развернуть решение () к сайту экземпляр списка SharePoint, к которому это решение уже было развертыватьо.Это диалоговое окно не появляется при выполнении шага развертывания обновления далее в этом пошаговом руководстве.

  10. В диалоговом окне Конфликты развертывания выберите переключатель Разрешать автоматически.

    Visual Studio удаляет экземпляр списка на сайте SharePoint развертывает элемент списка в проекте, а затем открывает сайт SharePoint.

  11. В разделе Списки панели быстрого запуска, выберите список сотрудники, а затем проверьте следующие сведения:

    • Столбцы Вложения и Домашний телефон не отображаются в это представление списка.

    • Список пуст.При использовании для повторного развертывания решения конфигурации развертывания По умолчанию список Сотрудники был заменен новым пустым списком из проекта.

Тестирование шага развертывания

Теперь можно переходить к тестированию шага развертывания обновления.Прежде всего, нужно добавить элемент в экземпляр списка в SharePoint.Затем измените определение списка и экземпляр списка, обновите их на сайте SharePoint и убедитесь, что шаг развертывания обновления не перезапишет новый элемент.

Добавление элемента в список вручную

  1. На ленте на сайте SharePoint, на вкладке Список средств выберите вкладку Элементы.

  2. В группе Создать выберите Создать элемент.

    В качестве альтернативы можно выбрать сама связь Добавление нового элемента в списке элементов.

  3. В окне сотрудники – новый элемент в окне Название введите диспетчер помещений.

  4. В окне Имя введите Andy.

  5. в окне Организация, введите Contoso.

  6. Нажмите кнопку Сохранить, убедитесь, что новый элемент отображается в списке, а затем закройте Интернет-браузер.

    Далее в этом пошаговом руководстве вы будете использовать этот элемент, чтобы убедиться, что шаг развертывания обновления не перезаписать содержимое данного списка.

Тестирование шага развертывания обновления

  1. В экспериментальном экземпляре Visual Studio в Обозреватель решений открыть контекстное меню для узла проекта EmployeesListDefinition, а затем выберите Свойства.

    Будет открыто окно редактор/конструктора свойств.

  2. На вкладке SharePoint, установите свойство Активная конфигурация развертывания к Обновить.

    Эта пользовательская конфигурация развертывания включает новый шаг развертывания обновления.

  3. Открыть контекстное меню для элемента проекта список сотрудников, а затем выберите Свойства или Открыть.

    Будет открыто окно редактор/конструктора свойств.

  4. На вкладке Представления выберите столбец Электронная почта, а затем выберите ключ < для перемещения, что столбец из списка Выбранные столбцы в список Доступные столбцы.

    Это действие удалит данные поля из представления по умолчанию списка Сотрудники на сайте SharePoint.

  5. Начать отладку путем выбора ключа F5 либо в строке меню, при выборе Отладка, Начать отладку.

  6. Проверьте, что выполнение кода в другом экземпляре Visual Studio прервано на ранее заданной точке останова в методе CanExecute.

  7. Выберите ключ F5 снова либо в строке меню выберите Отладка, Продолжить.

  8. Проверьте, что выполнение кода прервано на ранее заданной точке останова в методе Execute.

  9. Выберите ключ F5 либо в строке меню выберите Отладка, Продолжить конечное время.

    В Интернет-браузере откроется сайт SharePoint.

  10. В разделе Списки области панели быстрого запуска, выберите список сотрудники, а затем проверьте следующие сведения:

    • Элемент, который был добавлен ранее вручную (для Andy, диспетчера помещений) остаются в списке.

    • Столбцы Служебный телефон и Эл. почта не отображаются в это представление списка.

    Конфигурация развертывания Обновление изменяет существующий экземпляр списка Сотрудники на сайте SharePoint.Если вместо конфигурации Обновление использовалась конфигурация По умолчанию, должен возникнуть конфликт развертывания.Visual Studio разрешитьTfо бы конфликт, заменив список сотрудники и будет удалять элемент Andy, для диспетчера помещений.

Очистка компьютера разработчика

После тестирования шага развертывания обновления удалите с сайта SharePoint экземпляр списка и определение списка, а также удалите из Visual Studio расширение шага развертывания.

Удаление экземпляра списка с сайта SharePoint

  1. Открыть список сотрудники на сайте SharePoint, если список еще не открыт.

  2. На ленте на сайте SharePoint выберите вкладку Список средств, а затем выберите вкладку Список.

  3. В группе Параметры выберите элемент параметры списка.

  4. В Разрешения и управление ими выберите команду Удаление этого списка выберите ОК, чтобы подтвердить отправить список в корзину, а затем закрыть в Интернет-браузере.

Удаление определения списка с сайта SharePoint

  • В экспериментальном экземпляре Visual Studio в строке меню выберите Построение, Отозвать.

    Visual Studio отзовет определение списка с сайта SharePoint.

Удаление расширения

  1. В экспериментальном экземпляре Visual Studio в строке меню выберите Сервис, Расширения и обновления.

    Будет открыто диалоговое окно Расширения и обновления.

  2. В списке расширений выберите Обновление шага развертывания для проектов SharePoint, а затем выберите команду Удалить.

  3. В появившемся диалоговом окне выберите Да, чтобы подтвердить удаление расширения, а затем выберите Перезагрузить сейчас для завершения удаления.

  4. Закройте оба экземпляра Visual Studio (экспериментальном экземпляра и экземпляр Visual Studio, в котором открыто решение UpgradeDeploymentStep).

См. также

Основные понятия

Расширение упаковки и развертывания проектов SharePoint