Visual Studio 中的所有 SharePoint 项目项都具有可用于在项目部署到 SharePoint 时提供其他数据的属性。 这些属性如下所示:
功能属性
功能接收器
项目输出引用
安全控制条目
这些属性显示在 “属性” 窗口中。
功能属性
使用 “功能属性” 属性指定该功能使用的数据。 功能属性数据是一组值(存储为键/值对),当功能部署到 SharePoint 时,该功能包含在其中。 部署该功能后,可以访问代码中的属性值。
向项目项添加功能属性值时,该值将作为项功能清单中的元素添加。 例如,在业务数据连接(BDC)模型项目中,ModelFileName 功能属性显示为:
<Property Key="ModelFileName" Value="BdcModel1\BdcModel1.bdcm" />
设置功能属性值后,它将添加为项目的 .spdata 文件中的 FeatureProperty 元素。 有关访问 SharePoint 中的属性的信息,请参阅 SPFeaturePropertyCollection 类。
所有项目项中的相同功能属性值在功能清单中合并在一起。 但是,如果两个不同的项目项使用非匹配值指定相同的功能属性键,则会发生验证错误。
若要将功能属性直接添加到功能文件(.feature),请调用 Visual Studio SharePoint 对象模型方法 Add。 如果使用此方法,请注意,在功能属性中添加相同功能属性值的相同规则也适用于直接添加到功能文件的属性。
功能接收器
功能接收器是在项目项包含功能发生某些事件时执行的代码。 例如,可以定义在安装、激活或升级功能时执行的功能接收器。 添加功能接收器的一种方法是直接将其添加到功能,如 演练:添加功能事件接收器中所述。 另一种方法是在 功能接收器 属性中引用功能接收器类名称和程序集。
直接方法
将功能接收器直接添加到功能时,代码文件将放置在解决方案资源管理器 中的功能 节点下。 生成 SharePoint 解决方案时,代码将编译为程序集并部署到 SharePoint。 默认情况下,功能属性 接收器程序集 和 接收器类 引用类名称和程序集。
参考方法
添加功能接收器的另一种方法是使用项目项 的功能接收器 属性来引用功能接收器程序集。 功能接收器属性值有两个子属性: 程序集 和 类名称。 程序集必须使用其完全限定的“强名称”,并且类名必须是完整的类型名称。 有关详细信息,请参阅 Strong-Named 程序集。 将解决方案部署到 SharePoint 后,该功能使用引用的功能接收器来处理功能事件。
在解决方案生成时,功能接收器的属性值与其项目属性合并在一起,以便在 SharePoint 解决方案(.wsp)文件的功能清单中设置 Feature 元素的 ReceiverAssembly 和 ReceiverClass 属性。 因此,如果同时指定项目项和功能的 Assembly 和 Class Name 属性值,则项目项和功能属性值必须匹配。 如果值不匹配,将收到验证错误。 如果希望项目项引用不同于其功能所使用的功能接收器程序集,则需将该项目项移至另一个功能中。
如果引用尚未在服务器上的功能接收器程序集,则还必须在包中包含程序集文件本身;Visual Studio 不会为你添加它。 部署该功能时,程序集文件将复制到系统的全局程序集缓存(GAC)或 SharePoint 物理目录中的 Bin 文件夹。 有关详细信息,请参阅: 如何:添加和删除其他程序集。
有关功能接收器的详细信息,请参阅 功能事件接收器 和 功能事件。
项目输出引用
项目输出引用属性指定项目项需要运行的依赖项,例如程序集。 例如,假设您的解决方案包含 BDC 项目和类库项目。 如果 BDC 项目依赖于类项目输出的程序集,则可以在 BDC 项目的“项目输出引用”属性中引用程序集。 打包 BDC 项目时,依赖程序集将包含在包中。
项目输出引用通常是程序集,但在某些情况下(如 Silverlight 项目)可以是其他文件类型。
有关详细信息,请参阅 “如何:添加项目输出引用”。
安全控制项
SharePoint 提供了一种安全机制,称为安全控制条目,用于限制不受信任的用户访问某些控件。 根据设计,SharePoint 允许不受信任的用户在 SharePoint 服务器上上传和创建 ASPX 页面。 为了防止这些用户向 ASPX 页面添加不安全代码,SharePoint 会限制他们对 安全控件的访问。 安全控件是 ASPX 控件和 Web 部件,指定为安全部件,可供网站上的任何用户使用。 有关详细信息,请参阅 步骤 4:将 Web 部件添加到安全控件列表。
Visual Studio 中的每个 SharePoint 项目项都有一个名为 Safe Control Entries 的属性,该属性具有两个布尔子属性:Safe 和 Safe Against Script。 Safe 属性指定不受信任的用户是否可以访问控件。 防脚本属性指定是否允许不受信任的用户查看和更改控件的属性。
安全控制项在程序集层面引用。 通过在项目项的安全控件项条目属性中输入安全控件项条目,将安全控件项条目添加到项目的程序集。 但是,在向包中添加其他程序集时,还可以通过包设计器中的“高级”选项卡将安全控件项添加到项目的程序集。 有关详细信息,请参阅 “如何:将控件标记为安全控件 或 将 Web 部件程序集注册为安全控件”。
安全控件的 XML 条目
将安全控件条目添加到项目项或项目程序集时,引用将以以下格式写入到包清单中:
<Assemblies>
<Assembly Location="<assembly name>.dll"
DeploymentTarget="<'GlobalAssemblyCache' or 'WebApplication'">>
<SafeControls>
<SafeControl Assembly="<assembly name>.dll" Namespace=
"<SharePoint project name>" Safe="<true/false>"
TypeName="<control name>"
SafeAgainstScript="<true/false>" />
</SafeControls>
</Assembly>
</Assemblies>