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


Настройка надстроек SharePoint, размещенных у поставщика, для распространения

На этой странице описаны проблемы, которые могут возникнуть при совместном использовании надстройки SharePoint, размещенной у поставщика, с другими разработчиками или при получении копии из системы управления версиями, такой как Team Foundation Server, Git или Visual Studio Team Services.

Все надстройки SharePoint, размещенные у поставщика, созданные с помощью Visual Studio, включают пакет NuGet, который добавляет код, относящийся к SharePoint, и ссылки на веб-приложение, которое служит в качестве RemoteWeb для надстройки SharePoint.

Пакет NuGet, добавленный в проект веб-приложения средствами разработчика Office в Visual Studio, отсутствует в реестре пакетов NuGet, поэтому попытки восстановления пакета NuGet завершаются ошибкой, так как не удается найти соответствующий пакет.

Понимание проблемы

Средства разработчика Office для Visual Studio версии 12.0.31105 добавляют пакет NuGet в веб-приложения, созданные как надстройки RemoteWeb для SharePoint, размещенные у поставщика. Этот пакет, App for SharePoint Web Toolkit, добавляет в веб-проект следующие элементы:

  • Сборки и ссылки на сборки клиентской объектной модели SharePoint (CSOM).
  • Файл кода TokenHelper.cs, который помогает в процессе проверки подлинности для надстроек.
  • Файл кода SharePointContext.cs, который помогает создавать и поддерживать контекст SharePoint в веб-приложении.

Visual Studio работает так, что она или надстройки обычно содержат локальную копию пакета NuGet, поэтому разработчикам не всегда нужно подключаться к Интернету для скачивания пакетов NuGet. Пакет, в который входят средства, имеет идентификатор AppForSharePoint16WebToolkit.

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

Проблема заключается в том, что пакет с таким же идентификатором не существует в реестре пакетов NuGet. Отсутствует пакет с идентификатором AppForSharePoint16WebToolkit. Вместо этого в реестр пакетов NuGet был добавлен тот же пакет, что и AppForSharePointWebToolkit (обратите внимание на отсутствие 16 в идентификаторе).

Подготовка проекта надстройки, размещенного у поставщика, для управления версиями и распространения

До тех пор, пока средства разработчика Office для Visual Studio не будут обновлены для устранения этой проблемы, рекомендуется изменить проект перед фиксацией в системе управления версиями независимо от того, используете ли вы Team Foundation Server, Visual Studio Team Services, Git или любое другое решение.

После создания проекта просмотрите файл packages.config проекта и найдите пакет с идентификатором AppForSharePoint16WebToolkit. Самый безопасный способ обновить проект — удалить, а затем переустановить пакет.

Откройте консоль диспетчера пакетов в Visual Studio и введите следующее, чтобы удалить пакет:

  PM> Uninstall-Package -Id AppForSharePoint16WebToolkit

Примечание.

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

Теперь установите общедоступную версию того же пакета NuGet из общедоступного реестра:

  PM> Install-Package -Id AppForSharePointWebToolkit

См. также