SharePoint 2010, решение для изолированной среды, загружено .STP-файлы в _catalogs / lt с использованием функции, которая не входит в GetCustomListTemplates

#sharepoint-2010

#sharepoint-2010

Вопрос:

У меня есть решение для изолированной среды, которое имеет 2 функции (обе функции уровня sitecollection). Я активирую обе функции, используя одного и того же ПОЛЬЗОВАТЕЛЯ.

функция 1: загружает файлы .stp в папку _catalogs / lt через файл модуля

функция 2 (зависит от функции 1): он получит все файлы .stp через .Метод GetCustomListTemplates (spweb) из _catalogs / lt, но файлы не поступают, вот мой код

  using (SPSite mySite = properties.Feature.Parent as SPSite)
            {
                using (SPWeb spWeb = mySite.OpenWeb())
                {
                    spWeb.AllowUnsafeUpdates = true;
                    SPListTemplateCollection listTemplates = mySite.GetCustomListTemplates(spWeb);
    }
}
  

В listTemplates нет .stp files.it выходит пустым.

пожалуйста, помогите мне…

Ответ №1:

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

  1. Сохраните список «Доска обсуждений» SharePoint 2007 в качестве шаблона списка
  2. Используйте метод, описанный в этом блоге, для преобразования шаблона в SharePoint 2010
  3. Загрузите шаблон на мой сайт SharePoint 2010

Я заметил, что шаблон списка «Доска обсуждений» по умолчанию даже не был вариантом для создания нового списка в SharePoint 2010. Поэтому я перешел к функциям сайта и включил «Списки совместной работы в команде», просто чтобы включить шаблон списка «Доска обсуждений» по умолчанию. После этого появился шаблон списка «Доска обсуждений» по умолчанию и мой пользовательский шаблон «Доска объявлений», когда я приступил к созданию нового списка. Затем я перешел к своему сценарию powershell и заметил, что GetCustomListTemplates вернул мой пользовательский шаблон. Я предполагаю, что это означает, что C # также должен работать.

Вот список со старого веб-сайта SharePoint 2007:

Список SharePoint 2007

Вот функция совместной работы, которая включает шаблон списка «Доска обсуждений» на новом веб-сайте SharePoint 2010:

Списки совместной работы в команде

Вот меню для создания нового списка на новом веб-сайте SharePoint 2010 ПОСЛЕ включения функции списков совместной работы в команде:

Новая форма списка

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

Ответ №2:

Если вы используете Центр записей в качестве шаблона для вашего корневого веб-сайта в SharePoint 2010, GetCustomListTemplates() всегда возвращает 0 (ноль).

Есть какая-то странная ошибка, из-за которой это происходит.

Вот код, который вы можете попробовать запустить в SharePoint PowerShell. Возвращаемое значение для GetCustomListTemplates($web).Количество будет равно нулю, если у вас есть корневая сеть, созданная из шаблона центра записей.

 $site = get-spsite("http://localhost")
$web = $site.RootWeb
$list = $web.Lists["TestDocLibrary"]
$list.SaveAsTemplate("MyListTemplate.stp", "MyListTemplate", "My List Template", $false)
$site.GetCustomListTemplates($web).Count
  

Дополнительную информацию можно найти на следующих веб-страницах:

Удачи! — Джейсон