Domanda

Sono nuovo di Team Foundation Server e sto cercando di connettersi a un progetto di programmazione utilizzando C #. Ho il seguente blocco di codice ...

string serverName = "http://tfs01:8080";
TeamFoundationServer tfs = new TeamFoundationServer(serverName);
VersionControlServer version = (VersionControlServer)tfs.GetService(typeof (VersionControlServer));
Workspace workspace = version.GetWorkspace("Test", version.AuthenticatedUser);
MessageBox.Show(workspace.Name);

Quando eseguo il codice ricevo il seguente errore ...

TF14061: The workspace Test;vercuskis does not exist.

Il progetto "Test" è fuori della radice ed è visibile da VS 2008 Team Explorer, io ho accesso di sicurezza ad esso e lo uso per il check-in e fuori il codice bene

Non sono sicuro se ho il progetto "Test" si fa riferimento in modo corretto all'interno del mio codice. Sto cercando un esempio di come fare riferimento a un nome di progetto al largo della radice TFS.

Grazie,

È stato utile?

Soluzione

Il problema è che "Test" nel codice sopra si riferisce allo spazio di lavoro TFS, non il progetto di TFS. TFS utilizza un'idea chiamata aree di lavoro che decidi di mappare le directory ei progetti.

L'area di lavoro che si sta utilizzando è mostrato in Esplora controllo del codice sorgente windwo verso l'alto. Dice: 'Area di lavoro:'. E poi il nome del lavoro che si sta utilizzando

Ecco una buona risorsa per quanto riguarda le aree di lavoro: http://www.woodwardweb.com/teamprise/ 000333.html

Sarà quindi necessario probabilmente per ottenere alcune mappature delle cartelle da TFS pure. Il documentaiton TFS è scarsa, e gran parte del lavoro che ho fatto con esso richiede alcuni tentativi ed errori per capire come funziona TFS, e come l'API è diverso dall'utilizzo di esploratore controllo del codice sorgente in Visual Studio.

Altri suggerimenti

Come Brian ha detto, siete confusi su ciò che un lavoro è. Il suo legame è una buona: http://www.woodwardweb.com/teamprise/000333.html

Se si desidera solo per richiedere informazioni storiche sul sistema di controllo di versione e non checkin / checkout qualsiasi file, non hai bisogno di uno spazio di lavoro a tutti. Basta usare l'oggetto VersionControlServer.

  • QueryItems = "tf dir"
  • QueryItemsExtended = "proprietà TF"
  • QueryPendingChanges = "status tf"
  • QueryHistory = "storia tf" - attenzione, l'enumerazione causa di andata e ritorno di server aggiuntivi tramite dei rendimenti
  • ecc ecc

Ho avuto lo stesso problema, credo che sia stato perché il WorkSpace da VS è stato mappato con più progetti. Così ho creato un nuovo spazio di lavoro con un solo progetto mappata.

La mia soluzione lavorato: Aprire il CMD da VS Eseguire la riga sotto: tf workspace /new /s:http://tfs2010.server.com:8080/tfs

In questo modo:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>tf workspace /new /s:http://tfs2010.server.com:8080/tfs

Verrà richiesto di impostare la nuova area di lavoro: Nome: il nome dell'area di lavoro che ti piace (nessuno spazio o carattere speciale) cartella di controllo del codice sorgente: $/FolderName Cartella locale: C:\FolderName

Utilizza il WorkSpace Nome inputed sei codice

    this._server = config.GetAttribute("server");
    **this._workspace = config.GetAttribute("workspace");**
    this._user = config.GetAttribute("user");
    this._password = config.GetAttribute("psw");
    TeamFoundationServer tfs = new TeamFoundationServer(this._server, new System.Net.NetworkCredential(this._user, this._password));
    tfs.Authenticate();
    VersionControlServer versionControl = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));
    Workspace ws = versionControl.GetWorkspace(this._workspace, this._user);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top