Metodo IVSSItem.Share

Crea un collegamento di condivisione tra due progetti per un file o un progetto.

Spazio dei nomi: Microsoft.VisualStudio.SourceSafe.Interop
Assembly: Microsoft.VisualStudio.SourceSafe.Interop (in microsoft.visualstudio.sourcesafe.interop.dll)

void Share (
	[InAttribute] VSSItem pIItem,
	[OptionalAttribute] [InAttribute] string Comment,
	[OptionalAttribute] [InAttribute] int iFlags
)
void Share (
	/** @attribute InAttribute() */ VSSItem pIItem, 
	/** @attribute InAttribute() */ /** @attribute OptionalAttribute() */ String Comment, 
	/** @attribute InAttribute() */ /** @attribute OptionalAttribute() */ int iFlags
)
function Share (
	pIItem : VSSItem, 
	Comment : String, 
	iFlags : int
)

Parametri

pIItem

Rappresenta un file o un progetto da condividere.

Comment

Facoltativo. Una stringa contenente un commento. Il valore predefinito è una stringa vuota.

iFlags

Facoltativo. Il valore predefinito è 0. Per ulteriori informazioni, vedere VSSFlags.

[IDL]

HRESULT Share ([in]IVSSItem *pIItem, [in,defaultvalue(0)]BSTR Comment, [in,defaultvalue(0)]long iFlags);

Nel caso di cartelle o file condivisi, le modifiche vengono applicate in tutti i progetti che li condividono. Ogni file e cartella dispone di almeno un collegamento a se stesso.

Quando si condivide un progetto, vengono condivisi tutti i file all'interno del progetto (i progetti non vengono condivisi). Se si utilizza il flag VSSFLAG_RECURSYES, verranno condivisi anche tutti i file inclusi nei sottoprogetti.

Se si tenta di condividere un file in un progetto che contiene già un file con lo stesso nome o si tenta di condividere in modo ricorsivo un progetto in una delle relative derivazioni, verrà generato un errore di run-time.

Nell'esempio riportato di seguito viene illustrato come utilizzare il metodo Share per condividere un file tra due progetti. Per eseguire l'esempio:

  • Creare due cartelle, $/A e $/B.

    La cartella $/A deve contenere un file a.txt.

[C#]

using System;
using Microsoft.VisualStudio.SourceSafe.Interop;

public class IVSSTest
{
    public static void Main()
    {
        // Create a VSSDatabase object.
        IVSSDatabase vssDatabase = new VSSDatabase();

        // Open a VSS database using network name 
        // for automatic user login.
        vssDatabase.Open(@"C:\VSSTestDB\srcsafe.ini", 
                         Environment.UserName, ""); 

        // Get IVSSItem references to the project and the file objects. 
        IVSSItem vssFolder = vssDatabase.get_VSSItem("$/B", false);
        VSSItem vssFile1 = vssDatabase.get_VSSItem("$/A/a.txt", false);

        DisplayLinks(vssFile1);
        // Share a file between two folders.
        vssFolder.Share(vssFile1, "Comment for share", 0);
        DisplayLinks(vssFile1);

        IVSSItem vssFile2 = vssDatabase.get_VSSItem("$/B/a.txt", false);
        // Break the shared link between folders $/A and $/B on file a.txt.
        vssFile2.Branch("Branch comment", 0);
        DisplayLinks(vssFile1);

        // Destroy file a.txt in folder $/B:
        vssFile2.Destroy();
    }

    private static void DisplayLinks(IVSSItem vssFile)
    { 
        Console.Write("\n{0} contains links:", vssFile.Spec);
        foreach(IVSSItem vssItem in vssFile.Links)
            Console.Write("  {0}", vssItem.Spec);
    }
}

Output:

$/A/a.txt contains links: $/A/a.txt

$/A/a.txt contains links: $/B/a.txt $/A/a.txt

$/A/a.txt contains links: $/A/a.txt

Mostra: