3

プログラムで sourcesafe データベースからファイルを取得する必要があります。それを行う方法のアイデアはありますか?

ps: C# を使用してそれを行います。

4

3 に答える 3

10
using System;
using System.Collections.Generic;
using SourceSafeTypeLib;

namespace YourNamespace
{

public class SourceSafeDatabase 
{
    private readonly string dbPath;
    private readonly string password;
    private readonly string rootProject;
    private readonly string username;
    private readonly VSSDatabaseClass vssDatabase;

    public SourceSafeDatabase(string dbPath, string username, string password, string rootProject)
    {
        this.dbPath = dbPath;
        this.username = username;
        this.password = password;
        this.rootProject = rootProject;

        vssDatabase = new VSSDatabaseClass();
    }  

    public List<string> GetAllLabels()
    {
        List<string> allLabels = new List<string>();

        VSSItem item = vssDatabase.get_VSSItem(rootProject, false);
        IVSSVersions versions = item.get_Versions(0);

        foreach (IVSSVersion version in versions)
        {
            if (version.Label.Length > 0)
            {
                allLabels.Add(version.Label);
            }
        }

        return allLabels;
    }

    public void GetLabelledVersion(string label, string project, string directory)
    {
        string outDir = directory;
        vssDatabase.get_VSSItem(rootProject, false).get_Version(label).Get(ref outDir, (int)VSSFlags.VSSFLAG_RECURSYES + (int)VSSFlags.VSSFLAG_USERRONO);
    }

    public void Open()
    {
        vssDatabase.Open(dbPath, username, password);
    }

    public void Close()
    {
        vssDatabase.Close();
    }

}


// some other code that uses it

SourceSafeDatabase sourceControlDatabase = new sourceControlDatabase(...);
sourceControlDatabase.Open();
sourceControlDatabase.GetLabelledVersion(label, rootProject, projectDirectory);
sourceControlDatabase.Close();
于 2008-11-13T10:21:11.947 に答える
2

ソース管理操作を実行するために呼び出すことができるコマンドラインSS.EXEプログラムがあります。ただし、グローバルなSourceSafe構成に依存しているため、必要な処理を実行するのが難しい場合があります。

于 2008-11-13T10:11:32.887 に答える
2

VSS用のOLEライブラリがあります

この議論を見たいと思うかもしれません。

于 2008-11-13T10:14:56.470 に答える