2009-03-11 4 views
0

Gibt es eine Möglichkeit zur automatischen Bereitstellung von Steuerelementadaptern (einige Menüänderungen) in SharePoint mithilfe der WSP-Lösung und -Funktionen? Kann ich eine ".browser" -Datei programmatisch bearbeiten/bereitstellen?Bereitstellen von Steuerelementadaptern in SharePoint

Wenn es nicht möglich ist, was sind die Alternativen (einige gute Praxis)?

Ich brauche dies für die Veröffentlichung der Website.

Antwort

1

Darüber hinaus haben Sie mit Features immer die Möglichkeit, einen FeatureReceiver zu definieren, der im Prinzip eine von einem Entwickler zur Verfügung gestellte Assembly für die Übergabe von Feature-Lifecycle-Ereignissen ist (ee onFeatureInstalled, onFeatureActivated, etc.) Dort könnten Sie .Net schreiben Code, um mit der Infrastruktur zu interagieren.

+0

Sie denken, dass ich, nach innen Eigenschaft, schreiben Sie bloß. NET-Code und put-Datei in den physischen Ordner? Vielleicht ist es einen Versuch wert, wenn ich den vollständigen Pfad innerhalb des Features erreichen kann. –

+0

Ich denke, Sie sollten in der Lage sein, den Anwendungsordner über das SharePoint-Objektmodell zu erhalten, da Sie wissen, in welche Anwendung Ihre Funktion implementiert wurde. – Flo

+0

Dies ist die Veröffentlichungsseite und muss in zwei virtuellen Ordnern (FBA) bereitstellen :(. Aber vielleicht könnte ich es auch verwalten. –

1

können Sie WSPBuilder eine Chance geben. Es ist ein Open-Source-Tool-Pack SharePoint-Lösungen. Ich weiß mit WSPBuilder, dass Sie Clouds definitiv in den Bin- und Resource-Ordner innerhalb eines Anwendungsverzeichnisses deployen (... \ Inetpub \ wwwroot \ wss \ VirtualDirectories \ 80).

So ist es vielleicht auch möglich, Dateien im Ordner App_Browsers bereitzustellen. Ich denke, es ist einen Versuch wert.

0

Here is an article diese Aufgabe zu erklären. Sie können Verfahren wie diese zu Ihrem Master-Seite-Klasse hinzufügen:

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); 
     } 
    } 

Und dann rufen Sie es von der Master-Seite Konstruktor wie folgt aus:

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