构建基块:解决方案

上次修改时间: 2011年4月22日

适用范围: SharePoint Foundation 2010

本文内容
解决方案的对象模型
用于解决方案的 XML
解决方案的相关方面
有关解决方案的更多信息

利用 Microsoft SharePoint Foundation 解决方案框架,可以在解决方案包(.wsp 文件)中捆绑针对 SharePoint Foundation 的扩展。解决方案包存储在文件扩展名为 .wsp 的 CAB 文件中,它可以包含功能、网站定义、Web 部件和程序集。该解决方案框架提供用于部署解决方案的统一基础结构。在将该解决方案框架与功能一起使用时,将提供可在指定范围内启用或禁用的功能。此外,该框架还提供可用于将现有解决方案部署和升级到服务器场中的其他服务器的机制。也可以本地化解决方案以便为更多用户提供支持。

有两类解决方案,即沙盒解决方案和场解决方案。

  • 网站集管理员可以将沙盒解决方案部署到网站集的解决方案库中。此类解决方案具有对部分服务器对象模型的访问权,将在提供针对解决方案代码的隔离和监视的安全受限的上下文中执行这些解决方案。可以使用解决方案验证程序来验证沙盒解决方案。服务器场管理员可以启用或禁用沙盒解决方案并设置使用率限制,以防恶意代码危害服务器场中的服务器。

    备注

    有时会使用"用户"一词来代替"沙盒",特别是在沙盒解决方案系统的对象模型中。例如,该系统的主要 API 的命名空间为 Microsoft.SharePoint.UserCode,并且在前端 Web 服务器的 Windows"服务"对话框中,用于控制沙盒解决方案执行的服务称为"SharePoint 2010 用户代码宿主"。这反映了现在称为"沙盒解决方案"的事物之前的名称。

  • 场解决方案由服务器场管理员部署到前端 Web 服务器上。这些解决方案具有对服务器对象模型的完全访问权,并且不受使用率限制的约束。

解决方案的对象模型

可以使用 SharePoint Foundation 中的对象模型来管理解决方案。这包括升级、收回和部署解决方案。此外,还可以通过对象模型设置使用率限制并以编程方式定义沙盒解决方案的解决方案验证程序。

所有解决方案的对象模型

沙盒解决方案的对象模型

用于解决方案的 XML

通过使用文件名为 manifest.xml 的解决方案清单来配置解决方案。此解决方案清单存储在解决方案包的根目录下,它定义了解决方案包附带的功能、网站定义、资源和程序集。不会以任何方式处理解决方案清单中未包含的文件。示例解决方案清单应类似于以下内容。

<Solution SolutionId="SolutionGuid" xmlns="https://schemas.microsoft.com/sharepoint/">
  <FeatureManifests>
    <FeatureManifest Location="FeatureLibrary\feature.xml"/>
  </FeatureManifests>
  <TemplateFiles>
    <TemplateFile Location="ControlTemplates\Template.ascx"/>
  </TemplateFiles>
  <RootFiles> 
    <RootFile Location="ISAPI\MyWebService.asmx">
  </RootFiles>
  <Assemblies>
    <Assembly DeploymentTarget="GlobalAssemblyCache" Location="ms.samples.sharepoint.myFeature.dll"/>
  </Assemblies>
</Solution>

在创建解决方案包时,也可以创建一个 DDF 文件,该文件将映射磁盘上的文件位置和解决方案包中的文件。建议您使用 Microsoft Visual Studio 2010 中的 SharePoint 开发工具创建 SharePoint Foundation 解决方案。示例 DDF 文件应类似于以下内容。

;
.OPTION EXPLICIT     ; Generate errors 
.Set CabinetNameTemplate=MySolutionFile.wsp 
.set DiskDirectoryTemplate=CDROM ; All cabinets go in a single directory
.Set CompressionType=MSZIP;** All files are compressed in cabinet files
.Set UniqueFiles="ON"
.Set Cabinet=on
.Set DiskDirectory1=Package
build\manifest.xml manifest.xml
build\MySolutionFile\feature.xml MySolutionFile\feature.xml
...

解决方案的相关方面

构建基块:功能

构造块:Web 部件

构建基块:内容类型

有关解决方案的更多信息

解决方案概述

沙盒解决方案