使用Module(模块)推送文件至SharePoint

作者:柒月

Module像是一个容器,负责将包含其中的文件一一推送至指定的目录。

在项目中,我们可以按照需要推送的文件的类型,创建各种Module,如:负责推送母版页的Module,负责推送布局页的Module,负责推送文件至指定文档库的Module等。

SharePoint项目中添加一个Module

  1. 在Visual Studio中,打开或创建一个SharePoint项目
  2. 右键SharePoint项目->添加->新建项->模块(英文版为Module),点击“添加”按钮。此处会创建一个新的Module,默认名为Module1
  3. 删除Module1下默认的Sample.txt文件。删除此文件后,也会在删除Module1Elements.xml内相应的定义
  4. 可以在Module1下创建文件夹,部署时,也将会创建相应的目录结构,并将文件推送至指定文件夹下
  5. Module1或其下的文件夹中,添加->现有项,或者添加->新建项->文本文件,会自动在Elements.xml中创建相应的定义
  6. 部署SharePoint项目,Module1中包含的文件,会按照Elements.xml的定义,推送至指定目录

Elements.xml的结构

以下是一个Module中的Elements.xml内容:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="MasterPages" Url="_catalogs/masterpage" RootWebOnly="TRUE">
    <File Path="MasterPages/Normal.master" Url="Custom/Normal.master"  Type="GhostableInLibrary" ReplaceContent="True">
      <Property Name="Title" Value="母版页-常规" />
    </File>
  </Module>
</Elements>
  • Module节点。Name:指定此模块的名称;Url:指定此模块部署的相对路径;RootWebOnly:指定此模块是否只推送至根网站。详见:Module Element
  • File节点。Path:描述此文件的相对路径(相对于%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\TEMPLATE\Features\Feature);Url:相对于Module Url的相对路径;Type:指定此文件的部署类型,当指定为GhostableInLibrary时,表示此文件将作为文档库的Item;ReplaceContent:表示,若文件已被应用或占用,是否强制重新部署。详见:File Element
  • Property节点。NameValue描述其父级File节点的自定义属性。详见:Property Element

参考:How to: Include Files by Using a Module.aspx)