Frage

Als vorübergehende Notlösung, bis alle Designer an Ort und Stelle sind, bearbeiten wir derzeit eine ganze Reihe von XML-Konfigurationsdateien per Hand.Eines der Probleme dabei ist die Dateiversionierung, da die Leute beim Aktualisieren der Dateien vergessen, die Versionsnummern zu aktualisieren (was zu erwarten ist, da Menschen im Allgemeinen an Perfektion scheitern).

Daher gehe ich davon aus, dass ich beim Speichern der Dateien in Sharepoint in der Lage sein sollte, ein Skript zu schreiben, um die Dateien von Sharepoint herunterzuladen, die Versionsnummer abzurufen und die Versionsnummer automatisch von Sharepoint in die Datei einzugeben/zu aktualisieren.Das heißt, wenn jemand die „neuesten“ Dateien möchte, kann er das Skript ausführen und die neuesten Dateien mit den korrekten Versionsnummern erhalten (da steckt noch etwas mehr dahinter, also ist der Grund für die Verwendung des Skripts nicht nur der Vorteil der automatischen Versionierung).

Weiß jemand, wie man die Dateien + Versionsnummern von Sharepoint erhält?

War es hilfreich?

Lösung

Es gibt eine Möglichkeit, dies über Webdienste zu tun, aber ich habe mehr getan, indem ich benutzerdefinierte Ereignishandler implementiert habe.Hier ist ein bisschen Code, der das tut, was Sie wollen.Beachten Sie, dass Sie dies nur vom Server aus ausführen können. Daher möchten Sie dies möglicherweise in einen Webdienst einbinden, um den Zugriff von Ihren eingebetteten Geräten aus zu ermöglichen.Außerdem müssen Sie in diesem Code auf die Datei Microsoft.SharePoint.dll verweisen.

using (SPSite site = new SPSite("http://yoursitename/subsite"))
{
    using (SPWeb web = site.OpenWeb())
    {
        SPListItemCollection list = web.Lists["MyDocumentLibrary"].GetItems(new SPQuery());
        foreach(SPListItem itm in list) {
            Stream inStream = itm.File.OpenBinaryStream();
            XmlTextReader reader = new XmlTextReader(inStream);
            XmlDocument xd = new XmlDocument();
            xd.Load(reader);
            //from here you can read whatever XML node that contains your version info
            reader.Close();
            inStream.Close();
        }
    }
}

Die using()-Anweisungen sollen sicherstellen, dass kein Speicherverlust entsteht, da es sich bei SPSite und SPWeb um nicht verwaltete Objekte handelt.

Bearbeiten:Wenn die Versionsnummer in ein Bibliotheksfeld hochgestuft wurde, können Sie in der obigen for-Schleife wie folgt darauf zugreifen:

itm["FieldName"]

Andere Tipps

Ich gehe davon aus, dass Sie über Dokumente in einer Liste oder einer Bibliothek sprechen, nicht über Quelldateien im 12-Hive.Wenn ja, verfügt jede Bibliothek über eine integrierte Versionierung.Sie können darauf zugreifen, indem Sie auf die Formularbibliothekseinstellungen klicken, die in jeder Bibliothek verfügbar sind (natürlich mit entsprechenden Administratorrechten).Wählen Sie dort Versionseinstellungen und ein Setup aus, das für Ihren Prozess geeignet ist.

Was das Abrufen der Versionsnummer im Code angeht, wenn Sie a ziehen SPListItem Aus der Sammlung gibt es eine SPListItemVersionCollection benannte Versionen, die jedem Element beigefügt sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top