Настройка надстроек 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