SharePoint 2010,SandBox Solution, загрузил файлы.STP в _catalogs/lt с помощью компонента, не входящего в GetCustomListTemplates
У меня есть решение для песочницы, которое имеет 2 функции (обе функции уровня коллекции сайтов). Я активирую обе функции, используя одного пользователя.
особенность 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. Он выходит пустым.
Пожалуйста, помогите мне...
2 ответа
Является ли ваш шаблон списка производным от одного из стандартных шаблонов списков, таких как "Доска обсуждений"? Я заметил, что при попытке сделать следующее я столкнулся с той же проблемой, что и вы:
- Сохраните список "Обсуждение" в SharePoint 2007 в качестве шаблона списка.
- Используйте метод в этом блоге, чтобы преобразовать шаблон в SharePoint 2010
- Загрузить шаблон на мой сайт SharePoint 2010
Я заметил, что шаблон списка "Доска обсуждений" по умолчанию даже не был возможностью создания нового списка в SharePoint 2010. Поэтому я перешел к функциям сайта и включил "Списки совместной работы группы", чтобы просто включить "Форум обсуждений" по умолчанию. "шаблон списка. После этого, когда я пошел создавать новый список, появился и шаблон списка "Доска обсуждений" по умолчанию, и мой собственный шаблон "Доска объявлений". Затем я пошел к своему сценарию powershell и заметил, что GetCustomListTemplates вернул мой пользовательский шаблон. Я предполагаю, что это означает, что C# также должен работать.
Вот список со старого сайта SharePoint 2007:
Вот функция совместной работы, которая включает шаблон списка "Доска обсуждений" на новом веб-сайте SharePoint 2010:
Вот меню для создания нового списка на новом веб-сайте SharePoint 2010 ПОСЛЕ включения функции списков совместной работы группы:
Как вы можете видеть, изображение "BulletinBoard" совпадает с изображением "Доска обсуждений", поэтому SharePoint, вероятно, не смог использовать шаблон "BulletinBoard", поскольку шаблон "Доска обсуждений" еще не установлен.
Если вы используете Центр записей в качестве шаблона для корневого веб-сайта в SharePoint 2010, GetCustomListTemplates() всегда будет возвращать 0 (ноль).
Есть какая-то странная ошибка, которая делает это возможным.
Вот код, который вы можете попробовать запустить в SharePoint PowerShell. Возвращаемое значение для GetCustomListTemplates($web).Count будет равно нулю, если корневая сеть сделана из шаблона центра записей.
$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
Дополнительную информацию можно найти на следующих веб-страницах:
- http://social.msdn.microsoft.com/Forums/ar/sharepoint2010general/thread/c5455a27-360a-465c-91d5-f81beeac6789
- http://sharepointrecordsmanagement.com/2011/02/
Удачи! - Джейсон