Обновление определения сайта
-
16-10-2019 - |
Вопрос
У меня есть вопрос о процессе обновления функций в SharePoint.
В моей функции я развертываю пользовательский шаблон сайта вместе с парой определений списков, веб -частей и т. Д. Теперь, когда я обновляю их, я развертываю пользовательский манифест элемента для предоставления новых вещей на сайте, работает нормально. Но как насчет новых сайтов, создаваемых с шаблоном сайта? Всегда ли они созданы и сразу обновляются с помощью обновлений; Или я должен убедиться, что я также включаю новые элементы в базовых проявлениях сами?
Кроме того, я попытался продлить список с двумя новыми представлениями, но я не уверен, как мне это сделать. Я только что включил взгляды в схему списка, но это, кажется, работает только для недавно созданного сайта; Существующие сайты не расширяются с этими двумя новыми взглядами. В итоге я создал пользовательское обновление кода, которое развертывает два новых представления для существующих сайтов, и включал определение в Schema.xml для новых сайтов, но я полагаю, что, вероятно, есть лучший способ сделать то же самое.
Решение
Отвечая на ваш первый вопрос
Да, вам необходимо включить любые дополнительные манифесты под элементами Manifests и Upgrageacts-> VersionRange-> Apply Manifests оба. Причина в том, что, как только вы развернете новую версию функции, SharePoint заменяет более старую версию на новую. И когда активирована обновленная версия, она обрабатывает файлы только в элементе. Он вообще не будет обрабатывать обновления (потому что активирует текущую версию, не создает более старую версию и не модернизирует ее)
2 -й вопрос
Глядя на природу изменений (добавление новых представлений в существующий список), я думаю, что ваш выбор использовать код был правильным, поскольку SharePoint не поддерживает автономный элемент манифеста функции, который может добавить представление в существующий список. Помните, что обновление версии поддерживает такие вещи, как добавление поля к существующему типу контента (с помощью AddContentTyPefield) в соответствии с документированным здесь Но я понятия не имею, почему у них нет таких вещей, как: AddListView или UpdateListView или RemoveContentTyPefield .. Это может быть долгий список пожеланий здесь :)
Другие советы
Если вы имеете в виду WebTemplates, вы просто добавите свою новую функцию в Onet.xml веб -шаблона и обновите свое решение.
Если вы говорите о определениях сайта (что подразумевает название сообщения), вы не должны обновлять определение сайта, а вместо этого использовать сшивание функций, чтобы применить новую функцию на создаваемые сайты.