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


Импорт элементов с существующего сайта SharePoint

Шаблон проекта пакета решения SharePoint импорта позволяет повторно использовать такие элементы, как типы контента и поля с существующих сайтов SharePoint в новом решении Visual Studio SharePoint. Хотя большинство импортированных решений можно запускать без изменений, существуют некоторые ограничения и вопросы, которые необходимо учитывать, особенно если вы изменяете какие-либо элементы после их импорта.

Примечание.

Для импорта многократно используемых рабочих процессов используйте шаблон проекта "Импорт рабочего процесса с возможностью повторного использования". Дополнительные сведения см. в руководстве по импорту повторно используемых рабочих процессов.

Поддерживаемые решения SharePoint

Visual Studio 2012 полностью поддерживает импорт решений, созданных в SharePoint Foundation и SharePoint Server.

Visual Studio 2012 не поддерживает импорт решений, созданных в следующих приложениях:

  • Windows SharePoint Services 3.0

  • Microsoft Office SharePoint Server 2007

  • Visual Studio 2008

  • Microsoft SharePoint Designer 2007

  • Visual Studio 2010

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

Ограничения на импорт элементов

Хотя большинство элементов SharePoint можно импортировать из существующего WSP-файла, следующие элементы не поддерживаются, и для их правильной работы могут потребоваться изменения:

  • сущности модели подключения к бизнес-данным;

  • элементы сопоставления рабочего процесса кода;

  • рабочие процессы кода;

  • визуальные веб-части (ASCX-файлы);

  • веб-службы (ASMX-файлы);

  • привязки типов контента;

  • приемники событий;

  • определения списков (шаблоны);

  • определения сайтов.

    При экспорте решения из SharePoint Foundation или SharePoint Server эти элементы автоматически исключаются из WSP-файла . Однако другие WSP-файлы, созданные неподдерживаемыми инструментами, могут содержать эти элементы. (См. раздел "Поддерживаемые решения SharePoint" выше в этой статье.)

Что происходит при импорте решения

При импорте решения с помощью шаблона пакета решения Import SharePoint Visual Studio копирует все содержимое WSP-файла и пытается примирить и сохранить столько связей и ссылок между импортированными элементами и их файлами.

Все импортированные элементы копируются в соответствующие папки в обозревателе решений. Например, типы контента отображаются в папке Типы контента , а экземпляры списков отображаются в папке Экземпляры списка. Файлы, связанные с импортированным элементом, также копируются в папку этого элемента. Например, импортированный экземпляр списка включает его модули, формы и страницы ASPX.

Зависимые элементы

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

Что такое компоненты

Пользователи SharePoint Designer могут видеть непредвиденные файлы, называемые функциями, отображаются в импортированных решениях в Обозреватель решений. Хотя функции существуют в решении SharePoint Designer, они были скрыты из представления. Теперь функции отображаются в Visual Studio.

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

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

Особые случаи

В некоторых случаях Visual Studio не может согласовать элемент с его зависимыми файлами. Все файлы, которые Visual Studio не удалось разрешить, отображаются в папке "Другие импортированные файлы". Кроме того, для их свойства DeploymentType устанавливается значение NoDeployment , чтобы они не были развернуты вместе с решением.

Например, при импорте определения списка ExpenseForms определение списка с таким именем отобразится в папке Определения списка в обозревателе решений наряду с его файлами Elements.xml и Schema.xml. Однако его связанные формы ASPX и HTML могут быть помещены в папку с именем ExpenseForms в папке Прочие импортированные файлы . Чтобы завершить импорт, переместите эти файлы в определение списка ExpenseForms в обозревателе решений и измените значение свойства DeploymentType каждого файла с NoDeployment на ElementFile.

При импорте приемников событий файл Elements.xml копируется в правильное место, но вы должны вручную включить сборку в пакет решения, чтобы она развертывалась с решением. Дополнительные сведения о том, как это сделать, см. в разделе "Практическое руководство. Добавление и удаление дополнительных сборок".

При импорте рабочих процессов формы InfoPath копируются в папку Прочие импортированные файлы . Если WSP-файл содержит веб-шаблон, он устанавливается в качестве стартовой страницы в обозревателе решений.

Импорт полей и контейнеров свойств

При импорте решения с несколькими полями все отдельные определения полей объединяются в единый файл Elements.xml в узле обозревателя решений, который называется Fields. Аналогично все записи контейнеров свойств объединяются в файл Elements.xml в узле с именем PropertyBags.

Поля в SharePoint — это столбцы с указанным типом данных, таким как text, Boolean или lookup. Дополнительные сведения см. в разделе Стандартный блок: столбцы и типы полей. Контейнеры свойств позволяют добавлять свойства ко всем объектам в SharePoint, от фермы до списка, на сайте SharePoint. Контейнеры свойств реализованы в виде хэш-таблицы имен и значений свойств. Дополнительные сведения см. в разделе Управление конфигурацией SharePoint или Параметры свойств контейнера SharePoint.

Удаление элементов в проекте

Большинство элементов решений SharePoint имеет хотя бы один зависимый элемент. Например, экземпляры списка зависят от типов контента, а типы контента зависят от полей. После импорта решения SharePoint Visual Studio не уведомляет вас о каких-либо справочных проблемах при удалении элемента в решении, но не его зависимых элементов, пока не попытается развернуть решение. Например, если импортированное решение содержит экземпляр списка, который зависит от типа контента, и вы удалите этот тип контента, то при развертывании может возникнуть ошибка. Эта ошибка возникает, если зависимый элемент отсутствует на сервере SharePoint. Аналогично, если удаленный элемент также содержит контейнер связанного свойства, удалите эти записи свойств контейнера PropertyBags из файла Elements.xml. Поэтому, если при удалении каких-либо элементов из импортированного решения и появляются ошибки развертывания, необходимо узнать, есть ли какие-либо зависимые элементы, которые также должны быть удалены.

Восстановление отсутствующих атрибутов компонента

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

Обнаружение конфликтов развертывания во встроенных экземплярах списка не выполняется

Visual Studio не выполняет обнаружение конфликтов развертывания на встроенных экземплярах списка (то есть экземпляры списков по умолчанию, которые входят в SharePoint). Обнаружение конфликтов не выполняется для того, чтобы избежать перезаписи встроенных экземпляров списка в SharePoint. Встроенные экземпляры списка развертываются и обновляются, но никогда не удаляются и не перезаписываются. Дополнительные сведения см. в статье "Устранение неполадок с упаковкой и развертыванием SharePoint".

Импорт рабочих процессов SharePoint Server 2010

Если вы импортируете рабочий процесс, созданный в SharePoint Server, он не будет работать правильно после его развертывания. Рабочий процесс не выполняется правильно, так как некоторые сборки отсутствуют, а рабочие процессы SharePoint Server содержат формы InfoPath, которые в настоящее время не поддерживаются в решениях рабочих процессов Visual Studio. Однако импортированные рабочие процессы SharePoint Server можно выполнить правильно после исправления некоторых элементов, таких как добавление ссылок на сборки SharePoint Server и повторное подключение форм InfoPath. Дополнительные сведения см. в статье "Импорт рабочих процессов SharePoint Server 2010".

Максимальное количество символов для имен элементов

Visual Studio имеет ограничение в 260 общих символов для имен проектов и элементов проекта, включая путь. Если при импорте решения имя элемента превышает это ограничение, возникает ошибка:

Указанный путь, имя файла или оба значения имеют слишком большую длину. Полное имя файла должно содержать меньше 260 символов, а имя каталога — меньше 248 символов

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

  • Используйте короткое имя проекта при вводе его в диалоговом окне добавления нового проекта .

  • Создавайте проект в месте как можно ближе к корневой папке, чтобы сократить путь.

Атрибут SharePointProductVersion

Если вы импортируете решение, созданное в более ранней версии SharePoint, например Windows SharePoint Services 3.0 или Microsoft Office SharePoint Server 2007, измените значение атрибута SharePointProductVersion в манифесте пакета на 12.0 или вставьте элемент управления диспетчера сценариев во все импортированные веб-страницы и оставьте SharePointProductVersion равным 14.0. В противном случае импортированные веб-формы не будут отображаться в SharePoint.

Общие сведения

Решения в SharePoint Foundation и SharePoint Server включают атрибут SharePointProductVersion. SharePoint использует этот атрибут в манифестах пакетов для определения версии SharePoint, для которой предназначено решение. Допустимые значения — 12.0 и 14.0. Значение 12.0 указывает, что элемент предназначен для Windows SharePoint Services 3.0 или Microsoft Office SharePoint Server 2007; Значение 14.0 указывает, что элемент предназначен для SharePoint Foundation или SharePoint Server.

Для повышения безопасности при отрисовке страниц ASPX SharePoint Foundation и SharePoint Server требуется, чтобы все страницы ASPX или главные страницы содержали элемент управления диспетчера скриптов. Дополнительные сведения о диспетчере скриптов см. в разделе Обзор элемента управления ScriptManager. Так как элемент управления диспетчером сценариев недоступен в Windows SharePoint Services 3.0 и Microsoft Office SharePoint Server 2007, необходимо добавить его на любую страницу Windows SharePoint Services 3.0 или Microsoft Office SharePoint Server 2007, которая обновляется до SharePoint Foundation или SharePoint Server. В страницы ASPX, использующие стандартную эталонную страницу, добавлять диспетчер скриптов не требуется, поскольку он уже добавлен в стандартную эталонную страницу. Однако страницы ASPX, не использующие эталонную страницу или использующие пользовательскую главную страницу, должны добавить элемент управления скриптом для работы в SharePoint Foundation или SharePoint Server.

Отсутствие элемента управления диспетчером скриптов может быть проблемой при импорте проекта Windows SharePoint Services 3.0 или Microsoft Office SharePoint Server 2007 в Visual Studio 2010, так как атрибут SharePointProductVersion для всех новых проектов имеет значение 14.0. При развертывании обновленного проекта с веб-формой без диспетчера скриптов эта форма не будет отображаться в SharePoint.

См. также