Развертывание управляющих адаптеров в SharePoint

Есть ли способ автоматически развернуть адаптеры управления (некоторые модификации меню) в SharePoint с помощью решения и функций WSP? Могу ли я программно отредактировать / развернуть какой-нибудь файл ".browser"?

Если это невозможно, каковы альтернативы (какая-то передовая практика)?

Мне это нужно для публикации на сайте.


person Robert Vuković    schedule 11.03.2009    source источник


Ответы (3)


Кроме того, с помощью функций у вас всегда есть возможность определить FeatureReceiver, который в основном является обращением к предоставленной разработчиком сборке для обработки событий жизненного цикла функции (например, onFeatureInstalled, onFeatureActivated и т. Д.). Там вы сможете написать код .Net для взаимодействия с инфраструктура.

person Mark Mascolino    schedule 12.03.2009
comment
Вы думаете, что я должен внутри Feature написать чистый .NET-код и поместить файл в физическую папку? Может быть, стоит попробовать, если я смогу получить полный путь в Feature. - person Robert Vuković; 12.03.2009
comment
Я думаю, вы сможете получить папку приложений через объектную модель SharePoint, поскольку вы знаете, в каком приложении была развернута ваша функция. - person Flo; 13.03.2009
comment
Это сайт публикации, и его нужно будет развернуть в двух виртуальных папках (FBA) :(. Но, возможно, я смогу справиться и с этим. - person Robert Vuković; 16.03.2009

вы можете дать шанс WSPBuilder. Это пакет инструментов для SharePoint с открытым исходным кодом. Я знаю, что с помощью WSPBuilder вы определенно развертываете файлы в облаке в корзину и папку ресурсов в каталоге приложения (... \ Inetpub \ wwwroot \ wss \ VirtualDirectories \ 80).

Так что, возможно, также можно размещать файлы в папке App_Browsers. Думаю, стоит попробовать.

person Flo    schedule 12.03.2009

Вот статья объясняя эту задачу. Вы можете добавить такой метод в свой класс мастер-страницы:

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));
person Serhiy    schedule 24.01.2013