Pregunta

Soy nuevo en Team Foundation Server y yo estoy tratando de conectarse a un proyecto mediante programación con C #. Tengo el siguiente bloque de código ...

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

Cuando ejecuto el código recibo el siguiente error ...

TF14061: The workspace Test;vercuskis does not exist.

El proyecto "Prueba" está fuera de la raíz y es visibile desde VS 2008 Team Explorer, tengo la seguridad de acceso a la misma y que lo utilizan para la entrada y salida de código muy bien

No estoy seguro de si tengo el proyecto de "prueba" hace referencia correctamente dentro de mi código. Estoy buscando a un ejemplo de cómo hacer referencia a un nombre de proyecto fuera de la raíz de TFS.

Gracias,

¿Fue útil?

Solución

El problema es que la "prueba" en el código anterior se refiere al espacio de trabajo TFS, no el proyecto de TFS. TFS utiliza una idea llamada espacios de trabajo que asigne los directorios y los proyectos a.

El espacio de trabajo está utilizando se muestra en el explorador de control de código fuente windwo hacia la parte superior. Dice: 'Espacio de trabajo:'. Y luego el nombre del espacio de trabajo que está utilizando

Este es un buen recurso en relación con los espacios de trabajo: http://www.woodwardweb.com/teamprise/ 000333.html

A continuación, tendrá que probablemente obtener algunas asignaciones de carpetas de TFS también. El documentaiton TFS es escasa, y gran parte del trabajo que he hecho con ella requiere un poco de ensayo y error para comprender el funcionamiento de TFS, y cómo el API es diferente de usar el explorador de control de código fuente en Visual Studio.

Otros consejos

Al igual que Brian dijo, usted está confundido acerca de lo que es un espacio de trabajo. Su enlace es una buena: http://www.woodwardweb.com/teamprise/000333.html

Si sólo desea consultar información de la historia sobre el sistema de control de versiones y no Entrada / Salida de los archivos, no es necesario un espacio de trabajo en absoluto. Sólo tiene que utilizar el objeto VersionControlServer.

  • QueryItems = "tf dir"
  • QueryItemsExtended = "Propiedades de TF"
  • QueryPendingChanges = "status tf"
  • QueryHistory = "historia tf" - cuidado, la enumeración causa de ida y vuelta a través de servidores adicionales yield return
  • , etc, etc

Yo tenía el mismo problema, creo que fue debido a que el espacio de trabajo desde VS fue mapeado con múltiples proyectos. Así que he creado un nuevo espacio de trabajo con un solo proyecto asignada.

Mi solución trabajado: Abrir el CMD de VS Ejecutar la línea de abajo: tf workspace /new /s:http://tfs2010.server.com:8080/tfs

De esta manera:

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

Se le pedirá a la configuración de la nueva área de trabajo: Nombre: el nombre del espacio de trabajo en el que quieres (sin espacio o carbón especial) carpeta de control de la fuente: $/FolderName Carpeta local: C:\FolderName

Utilice el Espacio de trabajo Nombre inputed en código que está

    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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top