我有沙盒解决方案,它有2个功能(都是 sitecollection 级别功能) 我正在使用相同的USER激活这两个功能。
功能1:通过模块文件将.stp文件上传到 _catalogs / lt 文件夹
功能2(取决于功能1):它将通过_catalogs / lt的.GetCustomListTemplates(spweb)方法获取所有.stp文件,但没有文件进入 这是我的代码
using (SPSite mySite = properties.Feature.Parent as SPSite)
{
using (SPWeb spWeb = mySite.OpenWeb())
{
spWeb.AllowUnsafeUpdates = true;
SPListTemplateCollection listTemplates = mySite.GetCustomListTemplates(spWeb);
}
}
listTemplates没有.stp文件。它是空的。
请帮助我...答案 0 :(得分:0)
您的列表模板是否来自其中一个默认列表模板,例如"讨论区"?我注意到当我尝试执行以下操作时遇到了与您相同的问题:
我注意到默认"讨论区"列表模板甚至不是在SharePoint 2010中创建新列表的选项。因此,我访问了网站功能并打开了#34;团队协作列表"只是为了启用默认"讨论板"列表模板。 完成后,默认"讨论板"列表模板和我的自定义"公告板"当我去创建一个新列表时,模板出现了。然后我转到我的powershell脚本并注意到GetCustomListTemplates返回了我的自定义模板。我认为这意味着C#应该也能正常工作。
以下是旧版SharePoint 2007网站的列表:
这是一个协作功能,可以使"讨论板"新SharePoint 2010网站中的列表模板:
以下是在启用团队协作列表功能后,在新的SharePoint 2010网站中创建新列表的菜单:
你可以看到" BulletinBoard"图像与"讨论板"相同因此,SharePoint可能无法使用" BulletinBoard"模板,因为"讨论板"模板尚未安装。
答案 1 :(得分:0)
如果在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
可在以下网页找到更多信息:
祝你好运! - 杰森