SharePoint 2010,SandBox解决方案,将.STP文件上传到_catalogs / lt使用功能不在GetCustomListTemplates

时间:2011-10-03 12:43:59

标签: sharepoint-2010

我有沙盒解决方案,它有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文件。它是空的。

请帮助我...

2 个答案:

答案 0 :(得分:0)

您的列表模板是否来自其中一个默认列表模板,例如"讨论区"?我注意到当我尝试执行以下操作时遇到了与您相同的问题:

  1. 保存SharePoint 2007"讨论区"列表作为列表模板
  2. 使用此blog中的方法将模板转换为SharePoint 2010
  3. 将模板上载到我的SharePoint 2010网站
  4. 我注意到默认"讨论区"列表模板甚至不是在SharePoint 2010中创建新列表的选项。因此,我访问了网站功能并打开了#34;团队协作列表"只是为了启用默认"讨论板"列表模板。 完成后,默认"讨论板"列表模板和我的自定义"公告板"当我去创建一个新列表时,模板出现了。然后我转到我的powershell脚本并注意到GetCustomListTemplates返回了我的自定义模板。我认为这意味着C#应该也能正常工作。

    以下是旧版SharePoint 2007网站的列表:

    SharePoint 2007 list

    这是一个协作功能,可以使"讨论板"新SharePoint 2010网站中的列表模板:

    Team Collaboration Lists

    以下是在启用团队协作列表功能后,在新的SharePoint 2010网站中创建新列表的菜单:

    New list form

    你可以看到" 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

可在以下网页找到更多信息:

祝你好运! - 杰森