Frage

Ich bin neu in Team Foundation Server und ich versuche, ein Projekt zu verbinden programmatisch c # verwenden. Ich habe den folgenden Code-Block ...

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

Wenn ich führen Sie den Code, den ich die folgende Fehlermeldung ...

TF14061: The workspace Test;vercuskis does not exist.

Der „Test“ Projekt ist aus der Wurzel und ist visibile von VS 2008 Team Explorer, muss ich Sicherheits Zugriff darauf haben und ich verwende es zu überprüfen, in und aus Code ganz gut

Ich bin nicht sicher, ob ich das „Test“ Projekt richtig in meinem Code verwiesen habe. Ich suche ein Beispiel dafür, wie aus der TFS Wurzel einen Projektnamen verweisen.

Danke,

War es hilfreich?

Lösung

Das Problem ist, dass „Test“ oben in Ihrem Code auf den TFS-Arbeitsbereich bezieht, nicht das Projekt in TFS. TFS verwendet eine Idee namens Workspaces, den Sie Verzeichnisse und Projekte.

Der Arbeitsbereich Sie verwenden in der Source-Control-Explorer angezeigt windwo nach oben. Dort heißt es: ‚Workspace:‘. Und dann den Namen des Arbeitsbereichs Sie mit

Hier ist eine gute Ressource in Bezug auf Arbeitsbereiche: http://www.woodwardweb.com/teamprise/ 000333.html

Sie müssen dann wahrscheinlich auch einige Ordner Zuordnungen von TFS zu bekommen. Die TFS documentaiton ist spärlich, und ein großer Teil der Arbeit, die ich mit ihm getan haben erfordert einige Versuch und Irrtum zu verstehen, wie TFS funktioniert und wie die API unterscheidet sich von der Nutzung des Source-Control-Explorer in Visual Studio.

Andere Tipps

Wie Brian sagte, sie ist verwirrt darüber, was ein Arbeitsplatz ist. Seine Verbindung ist gut: http://www.woodwardweb.com/teamprise/000333.html

Wenn Sie nur Geschichte Informationen über das Versionskontrollsystem abfragen möchten und nicht checkin / alle Dateien Kasse, Sie brauchen keinen Arbeitsplatz überhaupt. Verwenden Sie einfach das VersionControlServer Objekt.

  • QueryItems = "tf dir"
  • QueryItemsExtended = "tf Eigenschaften"
  • QueryPendingChanges = "tf Status"
  • QueryHistory = "tf Geschichte" - Vorsicht, Aufzählung verursacht zusätzliche Server-Roundtrips über yield return
  • etc etc

Ich hatte das gleiche Problem, ich glaube, es war, weil das Workspace von VS mit mehreren Projekten zugeordnet wurde. Also habe ich einen neuen Arbeitsbereich mit nur einem abgebildeten Projekt.

Meine gearbeitet Lösung: Öffnen Sie die CMD von VS Führen Sie die unten Line: tf workspace /new /s:http://tfs2010.server.com:8080/tfs

Wie folgt aus:

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

Sie werden den neuen Arbeitsbereich einrichten aufgefordert: Name: der Arbeitsbereich Name, den Sie mögen (keine Leer- oder Sonder char) Source-Control-Ordner: $/FolderName Lokaler Ordner: C:\FolderName

Mit dem inputed Namen des Arbeitsbereiches in Sie ist Code

    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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top