Monatliche Archive: Januar 2008

Dies ist, warum ich nicht wie mithilfe von Tools Tag Null

http://groups.google.com/group/microsoft.public.sharepoint.portalserver.development/browse_thread/thread/41e8cbe4f15e8b4c/76506ea401403e35?#76506ea401403e35

Wenn das Tool Zeug geht nicht verstanden und dann scheitert es in Schritt n von einer unbekannten Anzahl von Schritten, Du bist tot im Wasser…

</Ende>

Technorati Tags:

Lösung für BDC-ADF-Importfehler: “Der folgende Fehler ist aufgetreten:”

Ich war BDC ADF Dateien noch einmal von hand Handwerk. (so dass ich aufbauen kann mein "runter von meinem Rasen!" cred) und drücken Sie diesen schönen Fehler:

Bild

"Application Definition importieren fehlgeschlagen. Der folgende Fehler ist aufgetreten:"

Wie Sie sehen können, Es ist ein Fehler, aber … Es wird nicht um mir zu sagen, was es ist.

In meinem Fall, die Frage stellte sich heraus, dass ich mit einer funktionalen ADF für ein anderes Projekt begonnen hatte, aus, die mit einer Datenbank verbunden und ausgeführt eine SQL-Abfrage für eine Sicht. Bei diesem neuen Projekt, Ich rufe eine Methode auf einem Webdienst. Ich hatte die DB-spezifischen Sachen entfernt und meine Web-Dienst-Sachen hinzugefügt, aber Fehler beim Aktualisieren der <LobSystem-Objekt>Das Type-Attribut. Ich wechselte er zu "WebService" und ich ging gerne zu neuer und spannender Importfehler, die gegebener behandelt wurden.

Hier ist die falsche LobSystem:

<LobSystem-Objekt
xmlns:Xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:SchemaLocation =http://Schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Typ = "Datenbank"
Version = "1.0.0.0" Name = "Xyzzy"
Xmlns ="
http://Schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Das ist richtig:

<LobSystem-Objekt
xmlns:Xsi =http://www.w3.org/2001/XMLSchema-instance
xsi:SchemaLocation =http://Schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Typ = "WebService"
Version = "1.0.0.0" Name = "Xyzzy"
Xmlns ="
http://Schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

</Ende>

Technorati Tags:

BDC scheint eine tragfähige Ersatz für Lookups

UPDATE: Dieser MSDN-Beitrag hat einige interessanten Beobachtungen von JXJ basierend auf seiner, vor allem negative, Erfahrungen auf diesem Weg gehen: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1

Wir haben ein Business-Szenario, wo wir zwei Dokumente Bibliotheken über eine gemeinsame "Document ID verknüpfen müssen" Feld.

Wir verwenden oft ein Nachschlagefeld für Hilfsmittel Links wie folgt. Es gibt mehrere Nachteile der Nachschlagefelder, drei davon sind:

  1. Nur eine Spalte aus der Lookup Lookup-Bibliothek verknüpft werden kann.
  2. Leistung: Die Quellbibliothek könnte Hunderte von Einträgen enthalten.. Das ist zu viele Einträge in der Suche.
  3. Suche: Es gibt keine integrierte Suche. Ich meine nicht in dem Sinne MOSS Suche, aber es gibt keine Möglichkeit, suchen / über mehrere Spalten aus der Quelle-Dokumentbibliothek zu filtern Sie und suchen Sie den gewünschten link.

Unterstützt von BDC, Wir können ein "Business-Daten verwenden." Spaltentyp und es bietet eine überlegene Suche und erlaubt sogar mehrere Spalten mit Daten in Listenansichten angezeigt werden.

Ich habe einige vorläufige Erfolg mit diesem Konzept und möchten mehr darüber schreiben.

Wenn Sie diese Winkel vor gearbeitet haben und keine Stellungnahmen haben, Bitte teilen Sie!

</Ende>

Technorati Tags:

Lösung für BDC-Importfehler: “Typ beschrieben durch die TypeDescriptor ' TypeName ' konnte nicht geladen werden. …”

Ich habe mit BDC heute gearbeitet, ADF-Dateien von hand programmieren und mir einige Fehler generieren. Ein solcher Fehler:

Anwendung-Definition-Import fehlgeschlagen. Der folgende Fehler ist aufgetreten: Typ beschrieben durch die TypeDescriptor ' TypeName ' konnte nicht geladen werden.. Parameternamen: TypeName Fehler aufgetreten bei oder kurz vor der Linie: 35’ und Position: '20'.

MOSS dieser Fehler angezeigt, als ich versuchte, die ADF XML-Datei importieren.

Ich recherchierte des Internets und gefunden, dass ich den Namen der LOB-Instanz verweist, wurde (aus der <LobSystemInstance>) in meiner <TypeDescriptor> Knoten, wenn ich den LOB-Namen selbst verwiesen haben, sollten (Von <LobSystem-Objekt>).

Falsch:

<TypeDescriptor-TypeName="Conchango.KeyValue, LOB-Instanznamen" Name = "KeyValue">

Korrigieren:

<TypeDescriptor-TypeName="Conchango.KeyValue, LOB-Name" Name = "KeyValue">

Hoffe, dass dieser jemand ein oder zwei Stunden Zeit spart.

</Ende>

Onnieren Sie meinen Blog ab!

Technorati Tags:

Lösung für Problem: “FileNotFoundException” Mit meinem Featureempfänger.

Ich arbeitete an einem Feature letzte Woche, die einige Ereignisempfänger eine bestimmte Listeninstanz hinzufügen würde. (Ich ein bisschen gebloggt die Liste Empfänger hier).

Mithilfe der Befehlszeile, Ich konnte die Funktion ohne Fehler installieren. (siehe unten für den versteckten Fehler). Als ich versuchte, die Funktion auf der Website bereitstellen, MOSS klagte über eine "FileNotFoundException" Fehler. Dieser Blog-Eintrag beschreibt, wie ich es gelöst.

Das ist der Fehler, den MOSS mir im Web-Browser zeigte:

Funktion "b2cb42e3-4f0a-4380-Aaba-1ef9cd526f20’ konnte nicht installiert werden, da das Laden von Ereignisempfängerassembly "xyzzyFeatureReceiver_0" Fehler: System.IO.FileNotFoundException: Konnte nicht geladen werden Datei oder Assembly ' xyzzyFeatureReceiver_0’ oder eine ihrer Abhängigkeiten. Das System kann die angegebene Datei nicht finden.
Dateiname: ' xyzzyFeatureReceiver_0’
bei System.Reflection.Assembly.nLoad(AssemblyName fileName, Zeichenfolge Codebasis, Beweise assemblySecurity, Montage locationHint, StackCrawlMark& stackMark, Boolesche throwOnFileNotFound, Boolean forIntrospection)
bei System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Beweise assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
bei System.Reflection.Assembly.InternalLoad(String assemblyString, Beweise assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
bei System.Reflection.Assembly.Load(String assemblyString)
bei Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
WRN: Assembly Bindung Protokollierung aktiviert ist OFF.
Montage-Bind Fehler Protokollierung, Legen Sie den Registrierungswert [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) An 1.
Hinweis: Es gibt einige Leistungseinbußen verbunden mit Montage Bind Fehler Protokollierung.
Um dieses Feature zu deaktivieren, Entfernen Sie den Registrierungswert [HKLMSoftwareMicrosoftFusion!EnableLog].

Behandeln von Problemen mit Windows SharePoint Services.

Ich weiß wie man bewusst, dass Fehler verursachen: nicht die Assembly im GAC zu installieren. Aber, Es war im GAC. Ich installiere normal Assemblys im GAC durch Ziehen in die c:\Windowsassembly Ordner mithilfe von Windows_explorer. Ich habe nie das Gefühl 100% komfortable tun, denn ich immer, dass Sie Gacutil dachte bestand aus einem Grund … Also versuchte ich, die. Es machte keinen Unterschied.

Ich suchte den Internets und fanden diesen Beitrag: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

Das Plakat geschah das gleiche Wurzel Bit des Codes zu verwenden (aus dem Buch Inside WSS aus dieser Liste) also das war ein Zeichen der Hoffnung. Jedoch, die Anregung der Dekoration der Assembly mit einem [Versammlung: ] Richtlinie machen nicht für mich Sinn.. Ich versuchte es trotzdem und ich hatte Recht. Es machte keinen Unterschied.

Dann bemerkte ich, dass meine Klassendefinition nicht öffentlichen war. Ich es öffentlich gemacht und das machte keinen Unterschied.

Nächste, Ich ging auf die Mühe, das "Versammlung Bind Fehler-Log aktivieren" (Das hilfreiche und genaue Anweisungen zur Verfügung gestellt) und das ist, wo Dinge begonnen, interessant zu werden. Das Protokoll zeigt mir, dass die Common Language Runtime überall auf diesem Server für meine Montage sucht. Es scheint sogar, es in meiner Hausapotheke auf der Suche nach. Aber … Es wird nicht im GAC suchen.

Ich habe auf meine Winterjacke und gehen wieder die Internets suchen und finden, dass jemand dieses Problem auch gehabt hat. Die endlosen Diskussionen in diesem Beitrag peters aus ins nichts und ich kann keine Lösung finden.

Ich bewege meine Montage zu einem der Orte, die das Protokoll behauptet, es ist auf der Suche und ich ein wenig mehr Fortschritte machen. Ich werde belohnt mit einem neuen Fehler im Browser beim Versuch, das Feature aktivieren:

Fehler beim Erstellen der Funktion Empfängerobjekt aus Assembly "xyzzyFeatureReceiver_0", Geben Sie "Conchango.xyzzyFeatureReceiver" für die Funktion b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Wert darf nicht null sein..
Parameternamen: Typ
bei System.Activator.CreateInstance(Typ, Boolean nonPublic)
bei System.Activator.CreateInstance(Typ)
bei Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Behandeln von Problemen mit Windows SharePoint Services.

Zeit für eine letzte Reise zu den Internets!

Diesmal ich herausfinden, vorhersehbar genug, dass MOSS dieser Fehler ausgibt, da die Assembly im GAC nicht ist.

Ich möchte etwas Positives aus dieser erhalten und versuchen, ein wenig stolz, dass ich erstellt habe die Auf der Flucht von MSIL-Assemblys, aber es funktioniert nicht. Ich bin einfach nur genervt. Ich finde mich murmelte "Huhn oder das Ei" unter meinen Atem.

Ich entscheide mich schließlich, punt. Ich ein völlig neues Projekt erstellen und kopieren den Code aus dem incredible-cloaked-from-the-GAC-assembly der arbeitsfreien Projekt über dieses neue Projekt. (Ich Suche ein Build-Flag aufgerufen, so etwas wie "Hide aus Assemblybindung im GAC installiert" aber man kann nicht).

Ich das Feature installieren und aktivieren Sie es und … Es funktioniert! Also, nach all dem, Ich musste im Grunde ' neu starten’ mein Projekt. Dies ist ein weiterer Grund, warum ich Computer hasse.

Ich habe etwas nützliches daraus lernen. Ich hatte die Installation Features mithilfe der Befehlszeile Stsadm ganztägig und benutze den "-zwingen" Möglichkeit aus Gewohnheit. Aus irgendeinem Grund, Ich habe nicht verwenden die - Force-Option aus, wenn ich das neue Projekt angelegt. Dieses Mal, Ich habe, wirklich vergessen Sie, dieses neue Projekt Assembly im GAC kopieren. Als Folge, Ich erhielt die FielNotFoundException"" Fehler. Dieses Mal, Ich habe es von stsadm, nicht, als ich versuchte, das Feature über den Webbrowser aktivieren. Also, -Kraft spielt eigentlich zwei Rollen. Es erlaubt Ihnen, ein vorhandenes KE neu installieren. Darüber hinaus können Sie eine fehlerhafte Funktion zu installieren, die nicht arbeiten durch die Unterdrückung des Fehlers zur Laufzeit. Es sagt wohl so viel in der Hilfe irgendwo aber ich nie bemerkt, dass es.

</Ende>

Sonntag Funny: Nach oben 10 Möglichkeiten, um Ihre Frau zu ärgern

  1. Brokkoli zu kaufen, wenn Sie wissen, gibt es bereits mehr als genug im Kühlschrank.
  2. Gehen für einen Lauf. Kühlen Sie sich ab. Sauberen Kissenbezug ausziehen und ersetzen mit T-shirt. Bedecken Sie mit sauberen Kissenbezug.
  3. Beim Autofahren, Fragen Sie, ob wir die falsche Richtung nach unten eine Einbahnstraße gehen sollte.
  4. Für 15 Jahre, jeden Sonntag deutet darauf hin, dass Ihre Frau wird ein museum, schnelles Überraschung, dass die Museen am Sonntag geöffnet sind.
  5. Für 15 Jahre, schlagen Sie gelegentlich zu der lokalen Buchhandlung am Sonntag. Schnelles Überraschung, dass sie am Sonntag nicht geöffnet sind (Vielen Dank Blau-Gesetze!).
  6. Verwendung 20 Punkte zu tun ein 3 Punkt-Zuges.
  7. Auf einem kühlen Herbst am frühen Nachmittag, in den Raum gehen und biegen auf die a/c. Beklagen Sie, dass es kalt ist. Wenn Frau sagt, "dann warum Sie das Einschalten, dumm" und erhebt sich ausschalten, warmen Ort hatte sie auf der Couch zu greifen. Bonuspunkte, wenn sie Sie nicht erkennen, habe es erst viel später.
  8. Öffnen Sie eine Dose mit köstlichen weißen Weißer Thun und essen es direkt aus der Dose, im Bett, Bei Nacht.
  9. Gehen Sie in die Küche, während Frau Abendessen Essen ist, die Besteck-Schublade öffnen Sie und herumschubsen Sie Utensilien, bis Frau schreit, "Was suchst du!"
  10. Nach Erhalt der neuen Visitenkarten, Legen Sie sie heimlich alles rund um das Haus: Unter dem Bett, in Kissenbezüge, in Kaffeetassen, in ihrer Handtasche, in Mantel-Taschen, Auto-Handschuhfächer, die Speisekammer — überall können Sie sich vorstellen.
  11. Schreiben Sie Blogeinträge, von deiner Frau.
  12. Wach auf.
  13. Wenn die Straßen von New York City, werden Sie auf der Hut vor "crusty" Objekte auf dem Boden. Halten im Verstand deiner Frau besondere Ängste, greifen Sie nach unten, als ob Sie einen aussuchen und Fragen, "hmm, Ich frage mich, was das heißt?" (Bereit sein für Frau Körper slam Sie, als ob sie ist, dass ein Geheimdienst-Agent zum Schutz des Präsidenten von einem Scharfschützen, oder man selbst mit auf Ihrem Rücken auf dem Bürgersteig finden).
  14. Ein Parkplatz, auf der Suche nach Raum zweimal umfahren. Sie wissen, Sie haben wirklich hit Pay Dirt, wenn dein Sohn auf dem Rücksitz schreit, "Oh keinen! Er macht es wieder!"
  15. "Top 10 schreiben" Listen, die nicht 10 Elemente.

===

Bonus Frau Witz:

Zwei männliche Mitarbeiter gehen zum Mittagessen. Eine von ihnen erzählt, der andere, "Ich losgelassen eine peinliche Fehlleistung neulich."

"Ein Freudscher Versprecher? Was ist das?"

"Gut, Wenn wir Essen fertig, die Kellnerin kam und fragte, wie wir unsere Mahlzeiten gerne. Ich wollte sagen, "Ich liebte die Hühnerbrust’ aber stattdessen sagte ich, 'Ich liebte Ihre Brüste'. Ich war so peinlich."

"Ah," sein Kollege antwortete.. "Ich hatte das gleiche passiert mir dieses Wochenende mit meiner Frau. Wir aßen Frühstück, was ich wollte sie bitten, zu übergeben, die butter, aber stattdessen schrie ich sie an, ' Sie ruiniert mein Leben!’"

</Ende>

Technorati Tags:

Ereignis-ID 1023: “Windows kann nicht geladen werden MSSCNTRS der DLL für erweiterbare Leistungsindikatoren”

UPDATE (04/08/08): Ich scheine zu diesem Problem gelöst zu haben. Von der Befehlszeile aus, Ich lief "c:\windowssystem32lodctr/r" als pro Eintrag reden InstallShield scheint Probleme und dass es für mich gelöst haben.

Ich habe bemerkt, dass in letzter Zeit, mein Desktop/Server-Lüfter schaltet sich niemals aus. Ich weiß, dass es verwendet, um deaktivieren. Ich brauchte einen Moment überprüfen es bemerkt, dass das ein VMware-Prozess lief eine konsequente 20% auf einer CPU Auslastung. Ich überprüfte das Ereignisprotokoll und sah diese Fehler im Anwendungsprotokoll passiert Dutzende Male pro minute:

Windows kann nicht geladen werden UGatherer der DLL für erweiterbare Leistungsindikatoren, Das erste DWORD im Datenabschnitt ist die Windows-Fehlercode.

Windows kann nicht geladen werden UGTHRSVC der DLL für erweiterbare Leistungsindikatoren, Das erste DWORD im Datenabschnitt ist die Windows-Fehlercode.

Windows kann nicht geladen werden MSSCNTRS der DLL für erweiterbare Leistungsindikatoren, Das erste DWORD im Datenabschnitt ist die Windows-Fehlercode.

Wenn ich in die Details eines dieser Nachrichten Bohren, Ich bekomme diese:

Quellcode: Perflib

Typ: Fehler

Kategorie: Keine

Ereignis-ID 1023

Ich habe einige Nachforschungen und es gab einige Anzeichen dafür, dass es ein Berechtigungen-Problem hinsichtlich des Zugangs zu den fraglichen DLLs sein könnte. Ich spielte mit dem Zeug, aber konnte keinen Einfluss auf Dinge in einer positiven Weise, also gab ich auf, dass.

VMware hatte mich herumzunörgeln wurde eine Aktualisierung seit geraumer Zeit, so dass ich die Version getuscht hatte ich installiert (offenbar bauen"1.0.1 29996") und Tat das update. Dies beförderte mich zu v1. 04. Leider, es das Problem nicht behoben..

Ich kann aufhören, die verrückte Anzahl von Nachrichten, an meine Anwendungsprotokoll, wenn ich einen Dienst namens "VMware Authorization Service" Herunterfahren. Dies verhindert, dass mich mit VMware-software, damit … nicht solch eine gute option.

Das Host-Betriebssystem ist Windows XP 64 Bit.

Ich glaube nicht, dass dies geschehen ist, immer, aber ich erinnere mich nicht, jedes besonderes Ereignis, das dazu geführt haben könnte.

Dies ist, warum ich Computer hasse.

</Ende>

Technorati Tags:

Schnell & Einfach: Benennen Sie hochgeladene Datei mit SharePoint-Objektmodell über einen Ereignisempfänger

UPDATE: Dies funktioniert aber es gibt erhebliche Einschränkungen, die in den Kommentaren beschrieben werden. Dies kann noch in einigen Umständen nützlich sein.

UPDATE 2: In meinem aktuellen Projekt, Benutzer hochladen immer Dokumente. Als Folge, Ich stoßen nicht auf ein Problem, wo MS Word ausgeführt wird und meint, dass die Datei, darauf umbenannt wurde. Ich auf ein Problem stoßen., "die Datei wurde von einem anderen Benutzer geändert" und dies über einen einfachen Semaphore-Typ-Flag gelöst. Benutzer müssen ein Meta-Datenfeld vom Standardwert auf etwas anderes ändern. Das ItemUpdated-Ereignis() Receiver sucht es einen gültigen Wert vor dem Ausführen der Umbenennung und seitdem, Ich habe keine Probleme gehabt.. Ihre Erfahrungen können variieren.

Ich habe eine Client-Anforderung, die in einer bestimmten Dokumentbibliothek mit einer bestimmten Namenskonvention entspricht hochgeladenen Dateien umbenennen. Die API bietet keine "umbenennen()" Methode. Stattdessen, Wir verwenden "MoveTo(…)". Hier ist ein minimaler Code dazu:

 öffentliche Überschreiben privatevoid ItemAdded(SPItemEventProperties Eigenschaften)
        {
            SPFile f = Properties.ListItem.File;

            f.MoveTo(Eigenschaften.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc");
            f.Update();

        }

Das nur schwierige Bit ist die "Eigenschaften. ListItem.ParentList.RootFolder.Url". Die MoveTo() Methode erfordert eine URL. Das Püree Zeichenfolge Punkte mich ins Stammverzeichnis des aktuellen Dokument Bibliothek. Dies ermöglicht es mir, zu vermeiden, keine harte Codierung in meinem Ereignisempfänger.

Dies ist ein nützlicher Version, die die gleiche Sache tut, aber weist den Namen der Datei auf "Titel":

 öffentliche Überschreiben privatevoid ItemAdded(SPItemEventProperties Eigenschaften)
        {
            DisableEventFiring();

            // Der Name der Datei selbst den Titel dieses Elements zuweisen.
 // HINWEIS: Diese Zuordnung muss stattfinden bevor wir die Datei selbst ändern.
 // Aufruf von update() auf die SPFile scheint ungültig, die Eigenschaften in
 // gewissermaßen.  Aktuelles zu "Titel" konnte bis zu ändern (und update() Aufruf)
 // wurden vor der Änderung in den Dateinamen verschoben.
            Eigenschaften.ListItem["Titel"] = Properties.ListItem.File.Name;

            Eigenschaften.ListItem.Update();

            SPFile f = Properties.ListItem.File;

            // Die Erweiterung der Datei zu erhalten.  Wir brauchen, die später.
 Zeichenfolge SpfileExt = Neu FileInfo(f.Name).Erweiterung;

            // Benennen Sie die Datei in der Listenelement-ID und verwenden die Datei-Endung zu
 // der Teil der es intakt.
            f.MoveTo(Eigenschaften.ListItem.ParentList.RootFolder.Url +
                "/" + Eigenschaften.ListItem["ID"] + spfileExt);

            // Begehen Sie den Umzug.
            f.Update();

            EnableEventFiring();
        }

Diskussionsforum: Best Practices-Durchsetzung in nicht-triviale MOSS-Umgebung

Fellow, "Mark", hat eine potenziell interessante Newsgroup-Diskussion "zur Gründung ausgezeichnete SharePoint Governance von Anfang an im Mittelpunkt gestartet" für eine 35,000 Benutzerumgebung.

Die Diskussion ist hier: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6

Auf über Pop und beitragen!

</Ende>

Benutzerdefinierte Aktions-URL wird nicht für neues Feature anzuzeigen.

Ich bin immer noch in die Gewohnheit der Gestaltung mein Feature-XML-Dateien von hand, denn es ist alles ziemlich neu für mich. Ich möchte nicht auf einem Front-End-Tool verlassen das Zeug hat, die, das ich nicht verstehen (Er sagte, als er schrieb einen Blog-Eintrag mit einem Tool, das er nicht versteht).

Heute, Ich habe versucht, die Websiteeinstellungen eine benutzerdefinierte Aktion hinzufügen, aber es würde nicht bloßstellen. Ich konnte das Feature installieren und sehen es in die Websitefeatures, aber wenn ich es aktiviert (ohne Fehler) Es würde nicht einfach über die Drop-Down-Menü angezeigt.

Ich erkannte schließlich, dass ich "SharePoint falsch geschrieben" in der Location-Attribut des der <CustomAction> Knoten. Dies ist die schlechte elements.xml-Datei:

<?XML Version="1.0" Codierung="UTF-8" ?>
<Elemente xmlns="http://Schemas.Microsoft.com/SharePoint/">
  <CustomAction
 ID="SiteActionsToolbar"
 GroupId="SiteActions"
 Lage="Microsoft.SharePoint.StandardMenu"
 Sequenz="100"
 Titel="Hallo!"
 Beschreibung="Benutzerdefiniertes Menüaktion über ein Feature hinzugefügt."
 ImageUrl="_layouts/images/menuprofile.gif">

    <UrlAction URL="http://www.Xyzzy.com"/>

  </CustomAction>
</Elemente>

Gut:

<?XML Version="1.0" Codierung="UTF-8" ?>
<Elemente xmlns="http://Schemas.Microsoft.com/SharePoint/">
  <CustomAction
 ID="SiteActionsToolBar"
 GroupId="SiteActions"
 Lage="Microsoft.SharePoint.StandardMenu"
 Sequenz="100"
 Titel="Hallo!"
 Beschreibung="Benutzerdefiniertes Menüaktion über ein Feature hinzugefügt."
    >
    <UrlAction URL="http://www.Xyzzy.com"/>
  </CustomAction>
</Elemente>

That one took me a good two hours to figure out 🙂

Ich nehmen Trost in der Tatsache, dass irgendwann in der Zukunft, Ich werde mit Überzeugung sagen können, "back in the day, Ich hatte drei Meilen bergauf im Schnee zu gehen (barfuß!) um eine benutzerdefinierte Funktion auf MOSS bereitstellen. Sie Kinder, Sie wissen nicht, wie einfach Sie es haben! Steigen Sie meinen Rasen!"

Kann nicht warten.

</Ende>

Technorati Tags: ,