SharePoint 解决方案中的虚拟目录

了解虚拟目录系统中的变化如何影响在 SharePoint 中创建 服务器场解决方案的方法。

使您的解决方案与新的 UI 模式系统兼容

如果您使用的是 Microsoft SharePoint 2010 软件开发工具包 (SDK),但要针对 SharePoint 进行开发,则需要在工作时考虑虚拟目录系统中的一项变化。 该变化是新 SharePoint 功能的不利影响,该功能允许网站集以 SharePoint 2010 模式或 SharePoint 模式运行。 这些模式有时称为兼容级别或 UI 版本。 对于虚拟文件夹 _layouts_controltemplates中的文件,SharePoint 需要使用 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\ (有时称为 15 hive) 或相应的 14 个配置单元中的文件版本,具体取决于网站集的模式。 一旦虚拟目录名称表明应使用 SharePoint 文件,SharePoint 即会将"/15"添加到虚拟目录路径。 如果没有该额外字符串,则表示不应使用 SharePoint 2010 文件。

这一新系统对您开发 SharePoint 解决方案和应用程序有一定影响,特别是使用 SharePoint 2010 SDK 的情况下。 在任何仅在 SharePoint 模式下运行的 SharePoint 外接程序 () ,并且您知道仅在 SharePoint 模式下运行的网站集中使用的任何 SharePoint 解决方案中,您需要自行将“/15”添加到您在解决方案/应用中创建的所有 _layouts_controltemplates 虚拟路径。 (除非路径指向 *.aspx 文件),即使该字符串未显示在您在 SharePoint 2010 SDK 中阅读的任何说明中,也应该这样做。 例如,如果 SharePoint 2010 SDK 指示您使用 ~/_layouts/images/myimage.png,则应在开发 SharePoint 时使用 ~/_layouts/15/images/myimage.png

如果您需要让解决方案与任一模式的网站集兼容,则需要分支逻辑来确定当前网站集的模式,并构建相应虚拟路径。 CompatibilityLevel 属性也可用于所有 SharePoint 客户端对象模型和 REST 接口,是代码可检查模式的位置之一。 SPUtility 类还具有几个新属性,可帮助管理解决方案中的兼容级别。 这些属性不适用于客户端对象模型。 最后,SharePoint 中有几个控件会揭示 UIVersion 属性,您的代码也可以使用该属性查找当前兼容级别。

注意

如果虚拟路径中的文件为 *.aspx,SharePoint 会自动检测当前网站集的模式,并从相应配置单元返回文件。 因此,您不必将“/15”插入虚拟路径。

另请参阅