Globale Ressourcendateien in SharePoint nutzen

by fkollmann 10/29/2008 4:58:28 PM

An einigen Stellen kommt man nicht umher eigene globale Ressourcendateien zu nutzen, z.B. wenn man diese in Systemseiten einbinden muss oder will.

Nehmen wir als Beispiel die application.master und nehmen wir an dort soll z.B. ein sprachabhängiger Copyright-Text erscheinen. Ein sauberer Weg wäre eine eigene Control zu machen, und die Übersetzung über deren Assembly zu machen. Wenn der Text selbst aber nur Parameter in einer fremden Control ist, oder man aus anderen Gründen unbedingt eine Ressource einbinden möchte, dann erfolg dies so:

<%$Resources:myresfile,myStringEntry%>

Achtung: myresfile ist nur der Dateiname der Ressourcendatei ohne Endung. myStringEntry ist ganz normal der Eintrag in der Ressourcendatei.

Die dazugehörige Ressourcendatei lässt sich einfach über Visual Studio erzeugen; Die Einträge kommen dann in den Strings-Bereich; Abschalten der Codegenerierung nicht vergessen.

Natürlich muss diese Datei in den App_GlobalResources Ordner der Webapplikation(!). Problem ist nur, dass jede Webapplikation ihren eigenen Ordner hat. Daher gibt es beim Deployment drei Fälle, welche abfangen werden müssen:

1) Deployment in vorhandene Webapplikationen

Eigentlich ist dieser Punkt nicht sonderlich kompliziert, kann aber nicht Teil des Delpoyments per .wsp-Datei sein.

Alle Webappliationen befinden sich unter C:\inetpub\wwwroot\wss\VirtualDirectories . Entsprechend muss die Ressourcendatei “nur” in das App_GlobalResources Verzeichnis jedes Unterverzeichnisses kopiert werden; Also quasi nach C:\inetpub\wwwroot\wss\VirtualDirectories\*\App_GlobalResources .

2) Deployment in zukünftige Webapplikationen

Dies geht recht einfach. Hierzu deployed man die Resourcendatei einfach in das \12\CONFIG\Resources Verzeichnis. Alle Ressourcendateien dort werden beim erzeugen einer neuen Webapplikation in deren App_GlobalResources Verzeichnis kopiert.

3) Entfernen der Ressourcendatei beim undeployen

Dieser Fall ist ähnlich dem ersten Punkt. Aber eine Datei zuviel schadet ja im Zweifelsfall auch nicht…