如何:在沙盒解决方案中创建和部署功能接收器

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

适用范围: SharePoint Foundation 2010

在 SharePoint Online 中提供

本主题介绍如何在沙盒解决方案中创建和部署功能接收器。

创建功能接收器

  1. 在 Microsoft Visual Studio 中,启动一个"空白 SharePoint 项目"。出现提示时,选择使它成为沙盒解决方案。

  2. 在"解决方案资源管理器"中,右键单击"功能"文件夹,然后选择"添加功能"。

  3. 右键单击"功能",然后选择"添加事件接收器"。

  4. 打开在上一步中创建的 .cs 或 .vb 文件。

  5. 在文件中使用事件处理逻辑根据需要取消注释和替代事件处理程序。作为一般规则,如果您替代 FeatureActivated 处理程序,则还应替代 FeatureDeactivating 处理程序以撤消您的代码在 FeatureActivated 处理程序中执行的操作。类似地,如果您替代 FeatureInstalled 处理程序,则还应替代 FeatureUninstalling 处理程序以撤消您的代码在 FeatureInstalled 处理程序中执行的操作。

    重要注释重要信息

    您的代码必须符合对运行在沙盒解决方案中的所有代码的限制。这是服务器场解决方案中的功能接收器和沙盒解决方案中的功能接收器之间的唯一区别。例如,您的代码无法访问场服务器的文件系统;它也无法访问代码运行所在的网站集之外的任何内容。

    例如,FeatureActivated 的以下替代向包含网站集的根网站的标题追加一个字符串。FeatureDeactivating 的替代撤消此更改。

    public override void FeatureActivated(SPFeatureReceiverProperties properties)
    {
        SPWeb website = (SPWeb)properties.Feature.Parent;
        SPSite siteCollection = website.Site;
        siteCollection.RootWeb.Title = siteCollection.RootWeb.Title + " with Ketchup!"; 
        siteCollection.RootWeb.Update();
    }
    
    public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
    {
        SPWeb website = (SPWeb)properties.Feature.Parent;
        SPSite siteCollection = website.Site;
        siteCollection.RootWeb.Title = siteCollection.RootWeb.Title.Replace(" with Ketchup!", string.Empty);
        siteCollection.RootWeb.Update();
    }
    
  6. 生成、打包并部署到您的开发 SharePoint 安装。在测试和调试完成后,使沙盒解决方案包(.wsp 文件)可供网站集管理员使用。

部署沙盒解决方案

网站集管理员可以将沙盒解决方案安装到网站集的解决方案库中。此过程包括两个步骤。第一步,将解决方案包上载到库中。第二步,部署它,这对于沙盒解决方案称为"激活"。第二步自动激活包中的任何功能。如果向网站集注册了任何解决方案验证程序,它们还在激活阶段执行。如果解决方案通过验证并且未被服务器场管理员阻止,则可随时在网站集中使用它。

请参阅

概念

可以在沙盒解决方案中实现哪些内容

沙盒解决方案的限制