【问题标题】:Deploying Control Adapters in SharePoint在 SharePoint 中部署控制适配器
【发布时间】:2013-01-25 01:31:30
【问题描述】:

有没有办法使用 WSP 解决方案和功能在 SharePoint 中自动部署控制适配器(一些菜单修改)?我可以以编程方式编辑/部署一些“.browser”文件吗?

如果不可能的话,有什么替代方案(一些好的做法)?

我需要这个来发布网站。

【问题讨论】:

    标签: sharepoint deployment moss customization


    【解决方案1】:

    此外,使用功能,您始终可以定义一个 FeatureReceiver,它基本上是对开发人员提供的用于处理功能生命周期事件(例如 onFeatureInstalled、onFeatureActivated 等)的程序集的标注。在那里您可以编写 .Net 代码与基础设施进行交互。

    【讨论】:

    • 您认为我应该在 Feature 内部编写裸 .NET 代码并将文件放入物理文件夹吗?如果我可以在功能中获得完整路径,也许值得一试。
    • 我认为您应该能够通过 SharePoint 对象模型获取应用程序文件夹,因为您知道您的功能部署到哪个应用程序。
    • 这是发布站点,必须部署到两个虚拟文件夹 (FBA) :(。但也许我也可以管理它。
    【解决方案2】:

    你可以给WSPBuilder 一个机会。它是一个开源工具包 SharePoint 解决方案。我知道使用 WSPBuilder,您可以将文件部署到应用程序目录 (...\Inetpub\wwwroot\wss\VirtualDirectories\80) 内的 bin 和资源文件夹中。

    所以也许也可以将文件部署到 App_Browsers 文件夹中。我认为值得一试。

    【讨论】:

      【解决方案3】:

      Here is an article 解释这个任务。您可以将这样的方法添加到您的母版页类中:

      private static void AddControlAdapterToType<T>(Type controlType) where T : ControlAdapter, new()
         {
             if (controlType == null)
             {
                 throw new ArgumentNullException("controlType", "This argument can not be null!");
             }
      
             var adapters = HttpContext.Current.Request.Browser.Adapters;
             var key = controlType.AssemblyQualifiedName;
             if (!adapters.Contains(key))
             {
                 var adapter = typeof(T).AssemblyQualifiedName;
                 adapters.Add(key, adapter);
             }
         }
      

      然后您从母版页构造函数中调用它,如下所示:

      AddControlAdapterToType<YourCustomAdapter>(typeof(Microsoft.SharePoint.WebPartPages.ContentEditorWebPart));
      

      【讨论】:

        猜你喜欢
        • 2023-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-01
        • 2019-10-24
        • 1970-01-01
        相关资源
        最近更新 更多