1

すべてのデザイナーが配置されるまでの一時的な応急処置として、現在、多数の xml 構成ファイルを手作業で作成しています。これに伴う問題の 1 つは、ファイルのバージョン管理です。これは、ファイルを更新するときにバージョン番号を更新するのを忘れるためです (人間は一般的に完璧に苦手なので、これは当然のことです)。

したがって、ファイルをSharepointに保存するときに、Sharepointからファイルを取得し、バージョン番号を取得し、Sharepointからファイルにバージョン番号を自動的に入力/更新するスクリプトを作成できるはずだと考えています。これは、誰かが「最新の」ファイルが必要な場合に、スクリプトを実行し、バージョン番号が正しい最新のファイルを取得できることを意味します (これにはもう少し多くのことがあるため、スクリプトを使用する理由は auto- の利点だけではありません)。バージョン管理)。

Sharepoint からファイルとバージョン番号を取得する方法を知っている人はいますか?

4

2 に答える 2

1

12 ハイブ内のソース ファイルではなく、リストまたはライブラリ内のドキュメントについて話していると想定しています。その場合、各ライブラリには組み込みのバージョン管理があります。各ライブラリから利用可能なフォーム ライブラリ設定をクリックすることでアクセスできます (もちろん、適切な管理者権限が必要です)。そこから [バージョニング設定] を選択し、プロセスに適した設定を選択します。

コードでバージョン番号を取得する場合SPListItem、コレクションからを取得するSPListItemVersionCollectionと、各アイテムに名前付きの Versions が添付されます。

于 2008-08-28T20:11:02.313 に答える
1

Web サービスを介してそれを行う方法がありますが、カスタム イベント ハンドラーを実装する方法は他にもあります。これは、あなたが望むことをするちょっとしたコードです。これはサーバーからしか実行できないため、これを Web サービスにラップして、組み込みデバイスからのアクセスを許可することをお勧めします。また、このコードで Microsoft.SharePoint.dll を参照する必要があります。

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

using() ステートメントは、SPSite と SPWeb がアンマネージ オブジェクトであるため、メモリ リークが発生しないようにするためのものです。

編集: バージョン番号がライブラリ フィールドに昇格されている場合は、上記の for ループ内で次のようにアクセスできます。

itm["FieldName"]
于 2008-08-29T15:35:09.350 に答える