解决方案包组件

本文内容:

  • Solution 元素

  • FeatureManifest 元素

  • Assembly 元素

  • ApplicationResourceFile 元素

  • CodeAccessSecurity 元素

  • DwpFile 元素

  • Resource 元素

  • SiteDefinitionManifest 元素

  • RootFile 元素

  • TemplateFile 元素

本文讨论解决方案包的结构,并说明在解决方案包中使用的解决方案架构和元素。

解决方案包 是指将您的自定义 Office SharePoint Server 2007 和 Windows SharePoint Services 3.0 开发工作传递到服务器场中的 Web 服务器(可能还传递到应用程序服务器)的分发程序包。可以在解决方案包中分发的组件包括:

  • 封装了驱动解决方案的代码的 .NET Framework 程序集。

  • 部署文件,例如资源文件、图像或其他帮助程序文件。

  • 许多解决方案涉及到传递新模板及网站、列表、库、字段、内容类型和其他项的定义。这些定义的格式均为基于 CAML 的 XML 文件。

  • 必须在 Web 服务器级别执行的配置,例如,用于注册 Web 部件的 Web.config 文件。

此外,必须包含指令清单文件,以便在解决方案包的部署过程中为 Office SharePoint Server 2007 提供帮助。指令清单文件包含解决方案包中包含的所有资产的列表,以及这些资产的目标位置和它们必须在其中出现的各种配置。清单文件的架构定义包含在位于 Office SharePoint Server 2007 系统文件夹中的 Wss.xsd 文件内。

有关解决方案包的详细信息,请参阅位于 MSDN 上的 Windows SharePoint Services 3.0 软件开发工具包 (SDK) 中的解决方案和 Web 部件包(https://go.microsoft.com/fwlink/?linkid=106479&clcid=0x804)。

下面各节介绍了解决方案包文件的各个元素。

Solution 元素

Solution 元素是指令清单文件的根元素。SolutionId 属性是该文件的一个重要元素,用于在解决方案存储区(是配置数据库的一部分)中标识解决方案。您使用全局唯一标识符 (GUID) 来标识解决方案 — 例如:

<Solution SolutionId="dda6427b-b880-46c0-a428-10c4bac0ce91" xmlns="https://schemas.microsoft.com/sharepoint/" >

</Solution>

DeploymentServerType 和 ResetWebServer 是可选的属性。DeploymentServerType 可以有两个可能的值:ApplicationServer 或 WebFrontEnd。通常,您的大部分解决方案针对的是服务器场中的 Web 服务器。针对应用程序服务器(例如索引服务器、运行 Excel Services 的服务器、文档转换服务器等等)的解决方案的示例是自定义配置或其他自定义转换器。在将解决方案部署到特定的 IIS Web 应用程序时,可以使用 IISReset 属性来启动 Internet Information Services (IIS) 的重置操作。

FeatureManifest 元素

功能在许多 SharePoint 产品和技术解决方案中发挥着重要的作用,原因是它们代表解决方案的各个组件 - 例如,字段类型、Web 部件、工作流等等。必须用 FeatureManifest 元素来表示解决方案中包含的每个功能。下面的代码示例包含在 SharePoint 网站中公布一个 Web 部件的功能:

<Solution SolutionId="dda6427b-b880-46c0-a428-10c4bac0ce91" xmlns="https://schemas.microsoft.com/sharepoint/" >

  <FeatureManifests>

    <FeatureManifest Location="HelloWorldWebPart_28c3eefe-2c03-4791-9f69-4405c80e1d92\feature.xml" />

  </FeatureManifests>

  …

</Solution>

将解决方案部署到 Web 服务器时,所有与功能相关的文件均被复制到指定的位置。

Assembly 元素

大多数 SharePoint 解决方案均包含一个或多个 .NET Framework 程序集。Assembly 元素在指令清单文件中使用,使动态链接库 (DLL) 在目标服务器上可用。例如:

<Solution SolutionId="dda6427b-b880-46c0-a428-10c4bac0ce91" xmlns="https://schemas.microsoft.com/sharepoint/" >

  <Assemblies>

    <Assembly Location="HelloWorldWebPart.dll" DeploymentTarget="GlobalAssemblyCache" >

      <SafeControls>

        <SafeControl Assembly="HelloWorldWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9f4da00116c38ec5" Namespace="MSDN" TypeName="HelloWorldWebPart" Safe="True" />

      </SafeControls>

  </Assembly>

  </Assemblies>

</Solution>

Assembly 元素的第一个属性是 Location,它存储解决方案文件中的 DLL 的相对路径。第二个属性是 DeploymentTarget,它有两个可能的值:GlobalAssemblyCache 或 WebApplication。GlobalAssemblyCache 指示应在全局程序集缓存中部署程序集。WebApplication 告知 Windows SharePoint Services 3.0 将程序集放入 IIS Web 应用程序的专有应用程序文件夹。如后面所述,WebApplication 意味着所使用的解决方案依赖于管理员在 Web.config 文件(与 IIS Web 应用程序关联)中设置的信任级别。在全局程序集缓存(这是一个受完全信任的位置)中部署程序集意味着开发人员不必担心此信任级别的设置。

解决方案中的 Web 部件必须在 Web.config 文件中注册为安全控件。Assembly 元素可以包含一个或多个 SafeControl 元素(集合在一个 SafeControls 元素中)。每个 SafeControl 元素描述必须在 Web.config 文件中完成的配置。

另一个由 Assembly 元素的子元素组成的可能集合是 ClassResource 元素(集合在一个 ClassResources 元素中)。每一个此元素表示已部署的程序集可能需要的资源,例如资源文件、XML 文件或图片。

ApplicationResourceFile 元素

指令清单文件可以包含一个或多个 ApplicationResourceFile 元素(带有必须部署的资源文件的相对路径)。在部署时,这些资源文件被复制到 IIS Web 应用程序的专有应用程序资源文件夹。例如:

<Solution SolutionId="8f37f0a7-ec35-4a63-9c3d-91205d9a2ac6"

          xmlns="https://schemas.microsoft.com/sharepoint/" >

    <ApplicationResourceFiles>

        <ApplicationResourceFile Location="hellowp.resx"/>

        <ApplicationResourceFile Location="hellowp.en-us.resx"/>

    </ApplicationResourceFiles>

</Solution>

CodeAccessSecurity 元素

当您要向代码授予特定的权限时,在指令清单文件中包含 CodeAccessSecurity 元素便很重要。简单地说,CodeAccessSecurity 元素有一个或多个 PolicyItem 子元素,这些子元素各自定义了有关为解决方案应用的代码访问安全策略的细节。策略项分为两个部分:作为其一部分的权限的列表,以及这些权限应作用于的程序集。

PermissionSet 元素(它是 PolicyItem 元素的子元素)中收集了在 IPermission 元素中表示的每项权限的列表。每个 IPermission 元素定义程序集正确运行所需的一项代码访问安全权限。

一个或多个 Assembly 元素均可以在代码访问安全性中发挥作用。您必须逐个定义这些元素,并且按名称、版本和完整的公钥标识每个元素。

DwpFile 元素

在可以将 Web 部件放在 Web 部件页上之前,必须使这些部件在 Web 部件库中可用。扩展名为 .dwp 或 .webpart 的 XML 文件存储着使 Web 部件可用所需的元数据信息。解决方案清单文件可以包含一个或多个 DwpFile 元素,这些元素在 DwpFiles 元素中收集,每一个均指向一个清单文件。例如:

   <DwpFiles>

      <DwpFile FileName="hellowebpart.webpart" Location="hellowebpart.webpart"/>

   </DwpFiles>

Resource 元素

可以将资源文件放入包含功能的文件夹中,并通过该位置使用它。Resource 元素在解决方案清单文件中表示此类资源。唯一要设置的属性是资源文件在包中的相对路径。

SiteDefinitionManifest 元素

部署自定义网站定义时使用此元素。SiteDefinitionManifest 元素有一个 Location 属性,该属性获取指定文件夹中的所有文件,并在 \12\Template\SiteTemplates 文件夹中创建必需的文件夹。WebTempFile 子元素部署 webtemp*.xml 文件,以便将该模板告知 SharePoint 产品和技术。例如:

  <SiteDefinitionManifests>

    <SiteDefinitionManifest Location="LitwareSiteTemplate">

      <WebTempFile Location="1033\xml\webtempLitware.xml" />

    </SiteDefinitionManifest>

  </SiteDefinitionManifests>

RootFile 元素

通过在解决方案清单文件中插入 RootFile 元素,可以在部署过程中将解决方案文件复制到直接位于 \12 文件夹下的指定文件夹。

TemplateFile 元素

TemplateFile 元素可用于定义必须部署在 \12\Template 文件夹下的模板文件。可以通过这种方式部署的文件类型的示例是 fldtypes*.xml 文件,此文件定义了自定义字段类型的详细信息。使用 Location 属性来指定此文件的相对路径。

下载本书

本主题包含在以下可下载书籍内,以方便您阅读和打印:

有关可下载书籍的完整列表,请参阅 Office SharePoint Server 2007 的可下载书籍

另请参见

概念

部署自定义项
部署创作的网站元素自定义项
部署开发的网站元素自定义项