65.9K
CodeProject 正在变化。 阅读更多。
Home

自定义站点定义

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2011年6月8日

CPOL

2分钟阅读

viewsIcon

17141

介绍我如何基于 Visual Studio 2010 中导入的站点模板生成自定义站点定义

引言

这篇文章解释了我如何基于在 Visual Studio 2010 中导入的站点模板生成自定义站点定义。

当我们要创建一个新的站点定义时,大多数 SharePoint 开发人员可能都知道 - 复制 OOB(开箱即用)模板,并对其进行少量修改。

背景

我的目标是创建一个具有自定义母版页以及一堆自定义库和列表的站点定义,例如任务甘特图视图、联系人简介图像视图等等。我可以在 ONET.xml 中轻松添加自定义母版页,而不会出现任何问题,但是手动设置自定义列表在开发和调试方面都比较困难。因此,我开始研究自定义站点模板,该模板是在设置列表(在列表设置或 SharePoint Designer 中)后通过“另存为站点模板”构建的。然后,我下载并将 sandbox 解决方案文件导入到 Visual Studio 2010 中。我发现该解决方案实际上为我们提供了一系列功能,包括列表、视图页面、模块、属性包和站点模板。我还发现这些功能位于 /Template/Features 下(见图 1)。

Picture 1

我的解决方案

当我们打开 OOB 站点定义 ONET 时,我可以在配置部分找到站点功能和 Web 功能(见图 2)。在 Visual Studio sandbox 解决方案中,站点模板也使用一个 ONET 文件。在 ONET 文件中,有许多在自定义站点模板中生成的功能。

Picture 2

图 3

我只是将站点模板 ONET 中的功能列表部分复制并替换到站点定义 ONET 中。通过该站点定义创建的新站点工作正常。

详细步骤

  1. 创建一个站点定义 – MYCLIENTSITEDEFINITION,它是从 STS 复制的。
  2. 使用此站点定义创建一个站点,并自定义该站点的列表和库。
  3. 在站点设置页面中另存为站点模板,并将此模板保存为 myclient.wsp
  4. 在 Visual Studio 2010 中,通过导入 myclient.wsp 创建一个新项目,并将其作为农场解决方案部署,无需 DLL,方法是更新解决方案属性。
  5. <SiteFeatures></SiteFeatures><WebFeatures></WebFeatures> 从站点模板解决方案 ONET 复制到站点定义 ONET 并保存。

    (请从站点定义配置中删除列表。否则,新列表将与定义的列表冲突。)(见图 4。)

    Picture 4
  6. 使用升级后的站点定义创建一个新站点。新站点将保留我们在自定义站点模板中所做的所有更改。

结论

到目前为止,我还没有找到很多生成具有自定义列表的自定义站点定义的解决方案。我发布此解决方案(我花费了大量时间来弄清楚这个解决方案)是为了听取您的意见或经验。我还想听听您关于如何轻松生成自定义站点定义的解决方案。

© . All rights reserved.